2

我正在使用LinkLabel,并且想将边框设置为红色。我将BorderStyletoFixedSingle 和 the ForeColorto 设置为红色,但只有文本是红色的,边框仍然是黑色的。

如果我对Label控制做同样的事情,我会得到边框和文本为红色,有什么建议吗?

4

2 回答 2

3

设置BorderStyleNone绘制自己的。

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);
}
于 2013-03-27T22:04:15.537 回答
0

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

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

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

public Color CustomBorderColor
{
    get { return m_CustomBorderColor; }
    set { m_CustomBorderColor = value; }
}
于 2013-03-27T22:23:23.967 回答