如何从自定义组件添加应用程序设置(WinForms)

时间:2009-03-08 10:02:54

标签: c# winforms application-settings user-controls

我有一个WinForms用户控件,当添加到表单时,应该自动添加一些元素到应用程序设置。 (当然,用户应该能够自定义/禁用此行为。)

是可取的吗?这样做的“好”方法是什么?

[编辑]
该控件提供了文件菜单的默认实现,消费者只需连接设计器中的菜单/工具栏项,并实现一些基本事件。部分内容是最近的文件列表,默认情况下应该记住它。

我同意消费者需要完全控制他是否希望自动添加这些设置。

到目前为止,我将文件列表公开为公共字符串属性,并且使用者可以将代码添加到init并将其存储在应用程序配置中/中。如果可能的话,我想进一步简化这一点,以便消费者只需提供设置变量,他希望存储设置(如果他想要的话)。

3 个答案:

答案 0 :(得分:1)

我不认为您的控件应该在配置文件中添加任何内容,除非有人要求它这样做。

但是,如果用户“选择”此操作,那么我认为您将不得不为您的控件添加一些设计器支持。无论是通过ToolBoxItem,还是通过设计者在添加新控件时收到通知,设计人员都必须创建和/或更新所需的配置信息。


感谢您的澄清。您可能需要查看IPersistControlSettings interface,尤其是它对ApplicationSettingsBase主题的看法。该页面应引导您获取有关.NET 2.0中强类型设置的信息。它允许将默认设置烘焙到控件或其他库代码中,这样如果设置发生更改,更改将持续存储到应用程序的配置文件中,无论是每个用户还是应用程序范围。

答案 1 :(得分:0)

在您的控件构造函数中,您可以检查(LicenseManager.UsageMode == LicenseUsageMode.Designtime),然后检查配置条目等,但我认为这是一个坏主意

如果配置条目存在,您的控件可以支持它们,如果不存在,则会有一些默认行为。作为开发人员,这似乎更容易被接受

您应该使用自定义配置部分

您可以提供自定义配置节处理程序作为控件的一部分,因此如果用户想要它,所有需要完成的工作就是将此部分连接到配置文件中

答案 2 :(得分:0)

我认为这取决于您将从具有可用体验的控件的消费者获得多少价值。你在卖这个控件吗?它是供内部使用的吗?如果这是供内部使用,那么创建设计时体验所需的工作量可能会非常高。