WinForm - 自定义控件
WinForm 自定义控件 --- 系统自带类型属性
引用 https://blog.csdn.net/qq_34059233/article/details/119636338
以SunnyUI为栗
前言
自定义控件的时候,需要给自定义控件类添加一系列的属性;
正文
名词解释
1)CategoryAttribute
用于给属性分类;
2)DescriptionAttribute
用于当在设计时,鼠标点击到这个属性时,提示对该属性的描述,如下:
3)也可以给属性赋初值,就像ControlColor属性的初值是红色一样
从上面可以看出,如果属性的类型是int,枚举,string ,font,color,point ,image,我们都可以在属性窗口对该属性设置值,但是当属性的类型是结构体和自定义类的时候,就不能再属性窗口对属性直接设置值了。
4)DisplayName
用于改变显示到属性窗体的名称,改变前如下
5)DesignerSerializationVisibility
msdn的解释是:指定属性对设计时序列化程序所具有的可见性。
其实就是我们在设计器中设置的属性在form.designer.cs这个类中的怎么显示,显示多少相关信息
DesignerSerializationVisibility.Hidden 什么都不显示
DesignerSerializationVisibility.Visible 不显示集合中的详细成员
DesignerSerializationVisibility.Content 显示的非常详细,把集合中的元素(不一定是集合)都显示了
实例
以SunnyUI中 UIEditForm为栗子
相关引用
using System.ComponentModel;
1.创建窗体UIEditForm
2.后台逻辑代码
引用秘密
[Category("SunnyUI"), Description("确定按钮点击事件")]
public event EventHandler ButtonOkClick;
[Category("SunnyUI"), Description("取消按钮点击事件")]
public event EventHandler ButtonCancelClick;
[Description("确定按钮可用状态"), Category("SunnyUI")]
[DefaultValue(true)]
public bool ButtonOKEnabled
{
get => btnOK.Enabled;
set => btnOK.Enabled = value;
}
[Description("取消按钮可用状态"), Category("SunnyUI")]
[DefaultValue(true)]
public bool ButtonCancelEnabled
{
get => btnCancel.Enabled;
set => btnCancel.Enabled = value;
}
3.窗体继承引用
当然还有事件自定义