首先从Label类继承一个类取名FocusLabel
public class FocusLabel :Label
{
private bool m_ShowBorder = false;
protected override void OnPaint(PaintEventArgs e)
{
if (m_ShowBorder)
{
Rectangle rect = this.ClientRectangle;
rect = new Rectangle(rect.X, rect.Y, rect.Width - 1, rect.Height - 1);
e.Graphics.DrawRectangle(new Pen(Color.Orange), rect);
}
base.OnPaint(e);
}
//重写Click事件
protected override void OnClick(EventArgs e)
{
base.OnClick(e);
if (this.Parent != null)
{
foreach (Control ctrl in this.Parent.Controls)
{
if (ctrl is FocusLabel && ctrl != this)
{
((FocusLabel) ctrl).m_ShowBorder = false;
ctrl.Refresh();
}
}
}
this.m_ShowBorder = true;
this.Refresh();
}
}