1.新建一个用户控件的项目,如下:
2.添加一个Panel容器到用户控件中,Panel属性Dock设置为全填充Fill,背景色设置为白色
3.给这个用户控件添加一个边框颜色的属性,代码如下:
1 private Color _BoarderColor = Color.LimeGreen;//设置一个初始的边框颜色 2 3 [Browsable(true), Description("边框颜色"), Category("自定义分组")]//1.设置控件属性是否可见;2.控件属性描述;3.类别分组
4 public Color BoarderColor//边框颜色 5 { 6 get 7 { 8 return _BoarderColor; 9 } 10 set 11 { 12 _BoarderColor = value; 13 } 14 }
4.添加边框粗细调整属性
1 private int _BoarderSize = 2;//初始边框粗细 2 3 [Browsable(true), Description("边框粗细"), Category("自定义分组")]//功能如上 4 public int BoarderSize//边框粗细 5 { 6 get 7 { 8 return _BoarderSize; 9 } 10 set 11 { 12 _BoarderSize = value; 13 } 14 }
5.关键代码,我们在上面已经给这个用户控件设置了两个属性,那我们怎么让这两个属性更改的时候使控件改变呢,这里用到Panel的一个重新绘制Paint的事件,代码如下:
1 private void panel1_Paint(object sender, PaintEventArgs e)//Panel的重绘事件 2 { 3 ControlPaint.DrawBorder(e.Graphics,//获取进行绘制的图形 4 this.ClientRectangle,//绘制控件所在工作区域 5 this._BoarderColor,//边框颜色 6 this._BoarderSize,//边框粗细 7 ButtonBorderStyle.Solid,//边框类型,选择实线边框,也有虚线等种类;下面这四个重复的传参是设置工作区上下左右边框的功能 8 this._BoarderColor,// 9 this._BoarderSize,// 10 ButtonBorderStyle.Solid, 11 this._BoarderColor, 12 this._BoarderSize, 13 ButtonBorderStyle.Solid, 14 this._BoarderColor, 15 this._BoarderSize, 16 ButtonBorderStyle.Solid); 17 }
5.生成我们的用户控件,创建一个Winform窗体用来测试我们的控件。如下:
原文:https://www.cnblogs.com/Tian-HW/p/15156287.html