控件Group Box默认的边框的颜色是白色的,在很多时候显得不那么突出。但默认的属性列表里面并没有提供相应的接口。所以只能借助重绘事件。
网上很多都说使用 OnPaint 事件,但是我在事件列表中没找到,应该是隐藏得太深了(需要用 override 关键字来重写)。我这里直接使用了 Paint 事件,也可以达到其效果。
感谢:http://blog.csdn.net/haoduo123456789001/article/details/51083223
public partial class TestForm : Form
{
public TestForm()
{
InitializeComponent();
this.groupBox1.Paint += groupBox_Paint;
this.groupBox2.Paint += groupBox_Paint;
}
void groupBox_Paint(object sender, PaintEventArgs e)
{
GroupBox gBox = (GroupBox)sender;
e.Graphics.Clear(gBox.BackColor);
e.Graphics.DrawString(gBox.Text, gBox.Font, Brushes.Red, 10, 1);
var vSize = e.Graphics.MeasureString(gBox.Text, gBox.Font);
e.Graphics.DrawLine(Pens.Red, 1, vSize.Height / 2, 8, vSize.Height / 2);
e.Graphics.DrawLine(Pens.Red, vSize.Width + 8, vSize.Height / 2, gBox.Width - 2, vSize.Height / 2);
e.Graphics.DrawLine(Pens.Red, 1, vSize.Height / 2, 1, gBox.Height - 2);
e.Graphics.DrawLine(Pens.Red, 1, gBox.Height - 2, gBox.Width - 2, gBox.Height - 2);
e.Graphics.DrawLine(Pens.Red, gBox.Width - 2, vSize.Height / 2, gBox.Width - 2, gBox.Height - 2);
}
private void TestForm_Load(object sender, EventArgs e)
{
}
}
本文摘自 :https://www.cnblogs.com/