Диалоговое окно редактора AppSettings.settings среды выполнения
По сути, я ищу этот тип проекта: http://www.codeproject.com/Articles/6160/Application-Configuration-Editor-using-the-Propert
Но для настроек приложения. Вы слышали об этом, могли бы вы что-нибудь посоветовать?
В основном, это тот случай, когда после установки AppSettings можно изменить только из кода, и если вы хотите что-то изменить вручную, у вас есть очень ограниченные и сложные опции.
Идея состоит в том, чтобы позволить пользователю запускать приложение с параметром --config и позволить ему изменять любые параметры в интерфейсе, напоминающем собственный редактор Visual Studio:
Редактировать: конечно, во время выполнения единственным редактируемым столбцом должно быть Значение. И единственное другое видимое должно быть Имя, как здесь:
1 ответ
О, не думал об этом, просто положи ApplicationSettingsBase
в PropertyGrid.SelectedObject
и вы можете редактировать его. Тогда вы просто позвоните .Save()
и ваши настройки сохранены.
Просто как тот.
Редактировать: если вы создаете такой редактор, попробуйте добавить кнопку, которая сбрасывает настройки к значениям по умолчанию с помощью .Reset()
метод. По умолчанию я имею в виду значения, которые вы указали в редакторе конструктора в Visual Studio.
С помощью этой кнопки вы получаете две основные ошибки:
Во-первых, после .Reset()
новые настройки (по умолчанию) уже сохранены на диск, поэтому не будет никакого очевидного способа их восстановления (если они вообще есть). Поэтому, пожалуйста, подготовьте своего пользователя к этому.
Во-вторых, вам нужно позвонить .Refresh()
на ваше PropertyGrid
потому что он не будет обновлять свои поля (но когда вы установите курсор на поле, он обновится, поэтому данные не сохраняются, они просто по-прежнему отображаются в элементе управления).
Еще одно редактирование: чтобы сделать процесс редактирования настроек еще более удобным для пользователя, вам, вероятно, захочется организовать их в группы, изменить названия на более удобочитаемые и тому подобное.
К сожалению, код для объекта настроек генерируется автоматически, что означает, что вы не можете добавлять какие-либо атрибуты к свойствам в этом классе. К счастью, вы можете добавить эти свойства программно.