框架自带的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事件好像没有反应,所以重写一个有效了