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.窗体继承引用

当然还有事件自定义

posted @ 2022-12-19 16:12  弗里德里希恩格hao  阅读(863)  评论(0编辑  收藏  举报