重写panel控件,加自定义边框颜色

框架自带的Panel是默认不设置边框样式的,只能设置边框类型。

你需要自己在Paint事件中实现边框绘制。当然,自己继承一下panel改一改也是可以的。

下面的控件继承自Panel.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
     public  class  PanelWithCustomBorder : Panel
     {
         public  Color BorderColor;
         public  int  BorderWidth = 1;
         public  ButtonBorderStyle BorderLineStyle =  ButtonBorderStyle.Solid;
         protected  override  void  OnPaint(PaintEventArgs e)
         {
             base .OnPaint(e);
             if  (BorderColor !=  null )
                 ControlPaint.DrawBorder(e.Graphics,  this .ClientRectangle, 
                     BorderColor,BorderWidth,BorderLineStyle,
                     BorderColor, BorderWidth, BorderLineStyle,
                     BorderColor, BorderWidth, BorderLineStyle,
                     BorderColor, BorderWidth, BorderLineStyle);
         }
     }

使用BorderColor属性指定边框颜色,不指定则为默认;

使用BorderWidth指定边框宽度;

使用BorderLineStyle指定边框线条的样式。


你也可以在标准panel的Paint事件中使用ControlPaint完成一样的工作。


我试过用panel控件的paint事件好像没有反应,所以重写一个有效了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值