对于C# WinForm控件开发,MSDN上提供了很多使用的方法,那么这里就向你介绍对于C# WinForm控件开发的基本了解内容,C#开发WinForm控件的类型以及各自的特点。
C# WinForm控件开发的伊始:
其实C#开发WinForm控件并不是很复杂,.NET为我们提供了丰富的底层支持。如果你有MFC或者API图形界面的开发经验,那么学会WinForm控件可能只需要很短的时间就够了。
自己开发的WinForm控件通常有三种类型:复合控件(Composite Controls),扩展控件(Extended Controls),自定义控件(Custom Controls)。
◆复合控件:将现有的各种控件组合起来,形成一个新的控件,将集中控件的功能集中起来。
◆扩展控件:在现有控件的基础上派生出一个新控件,为原有控件增加新的功能或者修改原有控件的功能。
◆自定义控件:直接从System.Windows.Forms.Control类派生出来。Control类提供控件所需要的所有基本功能,包括键盘和鼠标的事件处理。自定义控件是最灵活最强大的方法,但是对开发者的要求也比较高,你必须为Control类的OnPaint事件写代码,你也可以重写Control类的WndProc方法,处理更底层的Windows消息,所以你应该了解GDI+和Windows API。
C# WinForm控件开发之控件(可视化的)的基本特征:
1. 可视化。
2. 可以与用户进行交互,比如通过键盘和鼠标。
3. 暴露出一组属性和方法供开发人员使用。
4. 暴露出一组事件供开发人员使用。
5. 控件属性的可持久化。
6. 可发布和可重用。
C# WinForm控件开发之Attribute的使用:
控件设计中一些主要的Attribute:
BrowsableAttribute:描述是否一个属性或事件应该被显示在属性浏览器里。
CategoryAttribute:描述一个属性或事件的类别,当使用类别的时候,属性浏览器按类别将属性分组。
DescriptionAttribute:当用户在属性浏览器里选择属性的时候,description里指定的文本会显示在属性浏览器的下边,向用户显示属性的功能。
BindableAttribute:描述是否一个属性倾向于被绑定。
DefaultPropertyAttribute:为组件指定一个默认的属性,当用户在窗体设计器上选择一个控件的时候,默认属性会在属性浏览器里被选中。
DefaultEventAttribute:为组件指定一个默认的事件,当用户在窗体设计器中选择一个控件的时候,在属性浏览器中这个事件被选中。
DefaultValueAttribute:为一个简单类型的属性设置一个默认值。
EditorAttribute:为属性指定一个特殊的编辑器。
LocalizableAttribute:指示一个属性是否能被本地化,任何具有该Attribute的属性将会被持久化到资源文件里。
DesignerSerializationVisibilityAttribute:指示一个属性是否或者如何持久化到代码里。
TypeConverterAttribute:为属性指定一个类型转换器,类型转换器能将属性的值转化成其它的数据类型。