class GroupBoxBorder
{
public void gboxBorderPaint(object sender, PaintEventArgs e)
{
Graphics gfx = e.Graphics;
Pen p = new Pen(Color.Orange, 3);
GroupBox gb = (GroupBox)sender;
Rectangle r = new Rectangle(0, 0, gb.Width, gb.Height);
//lewa linia dobra
gfx.DrawLine(p, 0, gb.Font.Height / 2, 0, r.Height - 2);
//gorna pozioma lewa dobra
gfx.DrawLine(p, 0, gb.Font.Height / 2, 10, gb.Font.Height / 2);
//gorna pozioma prawa prawie dobra
gfx.DrawLine(p, gfx.MeasureString(gb.Text, gb.Font).ToSize().Width + 8, gb.Font.Height / 2, r.Width - 1, gb.Font.Height / 2);
//prawa dobra
gfx.DrawLine(p, r.Width - 2, gb.Font.Height / 2, r.Width - 1, r.Height - 2);
//dolna dobra
gfx.DrawLine(p, r.Width - 2, r.Height - 2, 0, r.Height - 2);
}
}
przykładowe uzycie w metodzie Paint GroupBoxa
private void GeneralSetGBox_Paint(object sender, PaintEventArgs e)
{
//tutaj wywolac borderpaint
GroupBoxBorder gbb = new GroupBoxBorder();
gbb.gboxBorderPaint(sender, e);
}
Może ten przykład ci pomoże jak sie do tego zabrać ;>