LinkLabel边框颜色

时间:2013-03-27 21:51:13

标签: c# winforms

我正在使用LinkLabel,并希望将边框设置为红色。 我将BorderStyle设置为FixedSingle 并且ForeColor为红色,但只有文字为红色,边框仍为黑色。

如果我对Label控件执行相同操作,我会将边框和文本设为红色,是否有任何建议?

2 个答案:

答案 0 :(得分:3)

BorderStyle设置为None并自行绘制。

private void linkLabel1_Paint(object sender, PaintEventArgs e)
{
    if (linkLabel1.ForeColor == Color.Red)
        ControlPaint.DrawBorder(e.Graphics, linkLabel1.DisplayRectangle, linkLabel1.ForeColor, ButtonBorderStyle.Solid);
    else
        ControlPaint.DrawBorder(e.Graphics, linkLabel1.DisplayRectangle, Color.Black, ButtonBorderStyle.Solid);
}

答案 1 :(得分:0)

LinkLabels实际上没有边框颜色属性,但您可以挂钩到OnPaint事件并绘制自己的边框。有代码显示如何在windows-tech.info处执行此操作。

正如他们提到的那样,如果您打算重新使用它,可以从LinkLabel控件派生出一个新控件。此时,您甚至可以添加“CustomBorderColor”属性并使用它。未设置的颜色显示为Empty,因此我会使用默认为透明的内容。像这样:

using System.Drawing.Color;
private Color m_CustomBorderColor = Color.Transparent;

public Color CustomBorderColor
{
    get { return m_CustomBorderColor; }
    set { m_CustomBorderColor = value; }
}