Как добавить настройки приложения из пользовательского компонента (WinForms) - PullRequest
1 голос
/ 08 марта 2009

У меня есть пользовательский элемент управления WinForms, который при добавлении в форму должен автоматически добавлять некоторые элементы в настройки приложения. (Конечно, пользователь должен иметь возможность настроить / отключить это поведение.)

это желательно? Что такое «хороший» способ сделать это?

[править]
Элемент управления обеспечивает реализацию по умолчанию для файлового меню, потребителю нужно только подключить элементы меню / панели инструментов в конструкторе и реализовать некоторые основные события. Частично это список последних файлов, который по умолчанию следует запомнить.

Я согласен с тем, что потребителю нужен полный контроль, хочет ли он, чтобы эти настройки были добавлены автоматически.

До сих пор я представлял список файлов как свойство публичной строки, и потребитель может добавить код для инициализации и сохранить его из / в конфигурации приложения. Если возможно, я бы хотел еще больше упростить это, чтобы потребитель просто предоставил переменную настроек, где он хочет, чтобы настройки были сохранены (если он вообще этого хочет).

Ответы [ 3 ]

1 голос
/ 13 марта 2009

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

Тем не менее, если пользователь "включит" это, то я думаю, что вам придется добавить некоторую дизайнерскую поддержку в ваш элемент управления. Либо через ToolBoxItem, либо через уведомление дизайнера о добавлении нового элемента управления, затем дизайнер должен будет создать и / или обновить необходимую информацию о конфигурации.


Спасибо за разъяснения. Возможно, вы захотите взглянуть на интерфейс IPersistControlSettings , особенно на то, что он говорит по поводу ApplicationSettingsBase. Эта страница должна привести вас к информации о строго типизированных настройках в .NET 2.0. Он позволяет запрограммировать настройки по умолчанию в элементе управления или другом коде библиотеки таким образом, чтобы при изменении настроек они сохранялись в файле конфигурации приложения, как для пользователя, так и для всего приложения.

0 голосов
/ 13 марта 2009

Я думаю, это зависит от того, сколько вы получите от потребителя элемента управления, имеющего полезный опыт. Вы продаете этот контроль? Это для внутреннего использования? Усилия, требуемые для создания опыта разработки, вероятно, были бы непомерными, если бы это было для внутреннего использования.

0 голосов
/ 08 марта 2009

В конструкторе элемента управления вы можете проверить (LicenseManager.UsageMode == LicenseUsageMode.Designtime), а затем проверить записи конфигурации и т. Д., Но я думаю, что это будет плохой идеей

Ваш элемент управления может поддерживать записи конфигурации, если они существуют, и иметь поведение по умолчанию, если они не существуют. Это было бы более приемлемым для меня как разработчика

Вы должны использовать пользовательский раздел конфигурации в любом случае

Вы можете предоставить пользовательский обработчик раздела конфигурации как часть элемента управления, так что все, что нужно сделать, это связать этот раздел с файлом конфигурации, если этого потребует пользователь

...