GroupBox 를 상속받아 OnPaint 함수를 오버라이딩 하면
GroupBox의 색상을 변경할수 있습니다.
전체소스
주요 소스
WATGroupBox myGroupBox = new WATGroupBox();
public frmMain()
{
InitializeComponent();
myGroupBox.Text = "GroupBox1";
myGroupBox.BorderColor = Color.Black;
this.Controls.Add(myGroupBox);
}
private void btnRED_Click(object sender, EventArgs e)
{
myGroupBox.BorderColor = Color.Red;
}
private void btnBLUE_Click(object sender, EventArgs e)
{
myGroupBox.BorderColor = Color.Blue;
}
private void btnDelBorder_Click(object sender, EventArgs e)
{
myGroupBox.BorderColor = System.Drawing.SystemColors.Control;
}
}
public class WATGroupBox : GroupBox
{
private Color borderColor;
public Color BorderColor
{
get { return this.borderColor; }
set { this.borderColor = value;
this.Invalidate();
}
}
public WATGroupBox()
{
this.borderColor = Color.Black;
}
protected override void OnPaint(PaintEventArgs e)
{
Size tSize = TextRenderer.MeasureText(this.Text, this.Font);
Rectangle borderRect = e.ClipRectangle;
borderRect.Y += tSize.Height / 2;
borderRect.Height -= tSize.Height / 2;
ControlPaint.DrawBorder(e.Graphics, borderRect, this.borderColor, ButtonBorderStyle.Solid);
Rectangle textRect = e.ClipRectangle;
textRect.X += 6;
textRect.Width = tSize.Width;
textRect.Height = tSize.Height;
e.Graphics.FillRectangle(new SolidBrush(this.BackColor), textRect);
e.Graphics.DrawString(this.Text, this.Font, new SolidBrush(this.ForeColor), textRect);
}
}
- [2018/02/26] List 에서 고유값 얻기 ()
- [2015/05/22] C#, 아두이노 간의 WIFI 통신으로 LCD 제어 (4566)
- [2015/03/13] 항상 마지막에 추가한 TEXT 보이게 ()
- [2014/01/17] ComboBox Text 편집 안되게 (14491)
- [2014/01/08] if 문에서 여러개 비교할때 (25340) *3
- [2013/12/30] C++, C# 간단한 기능 비교 (12884)
- [2013/12/18] 3자리마다 ,(콤마) 찍기 (원화, 달러 표시) (15224)
- [2013/09/29] 설치된 IE 버전 얻기 (12397)
- [2013/08/29] byte array to Hexa String (13026)
- [2013/06/25] string array to string (스트링 문자열 합치기) (23713)
좋은 정보 감사합니다~