1

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

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

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

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

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

4

3 回答 3

1

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

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


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

于 2009-03-13T04:08:07.713 回答
0

我认为这取决于您将从具有可用体验的控件的消费者那里获得多少价值。你卖这个控件吗?是供内部使用吗?如果这是供内部使用的,那么创建设计时体验所需的努力可能会令人望而却步。

于 2009-03-13T04:11:22.637 回答
0

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

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

无论哪种方式,您都应该使用自定义配置部分

您可以提供一个自定义配置部分处理程序作为控件的一部分,因此只需将此部分连接到配置文件中(如果用户需要)

于 2009-03-08T11:47:51.017 回答