41 lines
1.4 KiB
C#
41 lines
1.4 KiB
C#
using System.ComponentModel;
|
|||
|
|
using System.Drawing;
|
||
|
|
using System.Windows.Forms;
|
||
|
|
|
||
|
|
namespace JinYuan.ControlLib
|
||
|
|
{
|
||
|
|
public partial class GroupBoxEX : GroupBox
|
||
|
|
{
|
||
|
|
|
||
|
|
private Color mBorderColor = Color.FromArgb(1, 146, 235);
|
||
|
|
|
||
|
|
[Browsable(true), Description("边框颜色"), Category("自定义分组")]
|
||
|
|
public Color BorderColor
|
||
|
|
{
|
||
|
|
get { return mBorderColor; }
|
||
|
|
set { mBorderColor = value; }
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
public GroupBoxEX()
|
||
|
|
{
|
||
|
|
InitializeComponent();
|
||
|
|
}
|
||
|
|
|
||
|
|
// 重写
|
||
|
|
protected override void OnPaint(PaintEventArgs e)
|
||
|
|
{
|
||
|
|
var vSize = e.Graphics.MeasureString(this.Text, this.Font);
|
||
|
|
|
||
|
|
e.Graphics.Clear(this.BackColor);
|
||
|
|
e.Graphics.DrawString(this.Text, this.Font, new SolidBrush(this.ForeColor), 10, 1);
|
||
|
|
Pen vPen = new Pen(this.mBorderColor); // 用属性颜色来画边框颜色
|
||
|
|
e.Graphics.DrawLine(vPen, 1, vSize.Height / 2, 8, vSize.Height / 2);
|
||
|
|
e.Graphics.DrawLine(vPen, vSize.Width + 8, vSize.Height / 2, this.Width - 2, vSize.Height / 2);
|
||
|
|
e.Graphics.DrawLine(vPen, 1, vSize.Height / 2, 1, this.Height - 2);
|
||
|
|
e.Graphics.DrawLine(vPen, 1, this.Height - 2, this.Width - 2, this.Height - 2);
|
||
|
|
e.Graphics.DrawLine(vPen, this.Width - 2, vSize.Height / 2, this.Width - 2, this.Height - 2);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|