我们在创建使用 自定义winform用户控件 的时候往往程序默认属性是 不满足我们的需求 的,这个时候就需要我们自定义我们需要的控件属性来满足业务需求也就是 自定义控件属性 ,下面将实现c#实现 自定义控件属性 方法。

首先添加自定义控件

 按照以下步骤创建测试 自定义用户控件 以便测试 自定义控件属性 使用。

  • 右键点击项目选择用户控件
  • 点击用户控件添加用户控件

1634182636

然后跳转到自定义控件代码部分

 创建完 自定义用户控件 后我们可以跳转到控件代码部分。

  • 可以通过在窗体上选择控件右键查看代码
  • 也可以通过使用快捷键 F7 查看代码

1634182983

添加自定义用户控件属性

 添加自定义用户控件属性可以通过一下两种方式去实现。

  • 通过自定义类属性来添加自定义用户控件属性
  • 通过代码定义自定义代码方法去实现。

通过自定义类属性来添加自定义用户控件属性

 很简单 如下图所示 我们可以像平时 定义类属性 一样去定义自定义用户控件属性,ide会 自动识别 我们定义的属性。

 下面我们测试 自定义用户控件text属性

private string text;
public string Text{get=>text,set=>text=value;}

1634183519

通过代码定义自定义代码方法去实现

 通过定义各个属性方法来实现自定义属性。

 [Description("修改此值,可修改分割线的颜色"), Category("自定义属性")]
        // 控件的自定义属性值 
        public Color DrawLineColor                   
        {  
            get  
            {  
                return drawLineColor;  
            }  
            set  
            {  
                drawLineColor = value;    
                // 此处修改,为自定义属性变动时,执行的操作  
                // 此处当颜色值属性变动时,使用新的颜色,使自定义控件重绘 
                this.Invalidate();   
            }  
        }
        // 自定义事件的参数类型
        public delegate void select_Handle(object sender, EventArgs e, string orther);    
        [Description("当点击控件时发生,调用选中当前控件逻辑"), Category("自定义事件")]
        // 自定义事件名, 
        public event select_Handle ThisLine_Selected;                                       
  
        // 在当前控件的某个默认事件中调用自定义事件,此处使用默认的Click事件时,调用自定义的选中事件This_Selected  
        private void SplitLineHorizontal_Click(object sender, EventArgs e)  
        {
            // 定义选中控件时,显示为红色
            //DrawColor = Color.Red;     
            //调用自定义事件
            if (ThisLine_Selected != null) ThisLine_Selected(this, new EventArgs(), "其它参数");  
        }  
    }

 关于 c#实现自定义控件属性 通过以上方法已经实现了有兴趣的同学可以试下。