在C#(和Visual Basic)中,您可以直接从表单设计器添加几个非UI组件(那些不从System.Windows.Forms.Control
继承的组件)。这些组件的示例包括System.Windows.Forms.FolderBrowserDialog
和System.Windows.Forms.Timer
。
但是,使用UI设计器添加非UI控件而不是直接从代码实例化它们会带来什么好处?这背后有一个理由吗?
答案 0 :(得分:6)
我认为在设计师中使用非UI组件至少具有以下好处:
设计时支持
Windows窗体中最强大的功能之一是能够使用设计器来设置组件
尽管Timer
不是UI组件,但您可以在设计时将其属性设置为interval。这适用于许多其他组件,例如BindingSource
,ErrorProvider
,...您可以使用非常友好的属性网格和类型编辑器和类型转换器来在设计时配置属性。
BindingSource
,它可以非常轻松地进行数据绑定。HelpProvider
和Tooltip
等扩展程序提供程序时,由于它们与其他控件相关,因此在设计模式下配置它们非常容易。DataSource
和DataMember
等属性时,使用设计器并使用强大的属性网格功能非常友好。Localizable
Form
功能时,可以使用设计器完全使用它。标准代码
如果你看看设计师生成的代码,你会看到:
ISupportInitialize
的组件的生成代码使用其BeginInit
和EndInit
this.components
传递给构造函数,然后在Dispose
如果您不需要设计时支持并且编写组件的标准代码,那么在代码中使用主题就完全可以了。