Диалоговое окно редактора 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потому что он не будет обновлять свои поля (но когда вы установите курсор на поле, он обновится, поэтому данные не сохраняются, они просто по-прежнему отображаются в элементе управления).

Еще одно редактирование: чтобы сделать процесс редактирования настроек еще более удобным для пользователя, вам, вероятно, захочется организовать их в группы, изменить названия на более удобочитаемые и тому подобное.

К сожалению, код для объекта настроек генерируется автоматически, что означает, что вы не можете добавлять какие-либо атрибуты к свойствам в этом классе. К счастью, вы можете добавить эти свойства программно.

Другие вопросы по тегам