ale*_*exD 25 c# user-controls controls components
我有一个大致的想法,并且有一些明显的情况,但是对我来说也有一些灰色区域 - 何时最好用于从组件扩展以及何时最好创建用户控件?这与我试图解决的具体工作问题有关,但具体问题并不重要 - 这个问题的一般答案对我来说已经足够了.
Ree*_*sey 21
在WPF和Windows Forms中,两者的主要区别在于UserControl是一组控件 - 一个可重用的单个对象,由多个控件本身组成.
如果要使用新行为进行单个原始控件,而不是使用由较小控件组成的"控件",则必须使用Component/CustomControl/Control而不是UserControl.组件通常是非可视行为,其中CustomControl/Control通常用于可视控件.
jri*_*sta 14
组件和控件之间存在一个显着差异:控件具有用户界面.所有控件也是组件,但并非所有组件都是控件.如果需要显示用户界面,通常需要从某种控制基础(Control,UserControl,Form等)派生.如果你只是有行为,比如使用BackgroundWorker组件,那么你只需要直接从Component派生.
另一个注意事项......组件和控件都可以放到设计图面上.组件在特殊区域中显示为图标和标签,控件直接显示在设计图面上.但是,您可以使用第三种方法:简单的类.如果您不需要设计表面支持,我建议使用简单的类而不是Component或Control.当您需要的是100%纯粹的行为且没有设计时支持时,它们重量更轻,更少膨胀.