我正在使用LinkLabel,并希望将边框设置为红色。我将BorderStyle设置为FixedSingle,将ForeColor设置为红色,但只有文本是红色的,边框仍然是黑色的。
如果我对Label控件做同样的操作,我得到的边框和文本是红色的,有什么建议吗?
发布于 2013-03-28 06:04:16
将BorderStyle设置为None并绘制您自己的own。
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-28 06:23:24
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; }
}https://stackoverflow.com/questions/15670209
复制相似问题