LinkLabel边框颜色

本文关键字:颜色 边框 LinkLabel | 更新日期: 2023-09-27 18:06:06

我使用LinkLabel,并希望将边框设置为红色。我将BorderStyle设置为FixedSingleForeColor为红色,但只有文本是红色的,边框仍然是黑色的。

如果我对Label控件做同样的操作,我得到的边界和文本为红色,有什么建议吗?

LinkLabel边框颜色

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);
}

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; }
}