【问题标题】:LinkLabel border colorLinkLabel 边框颜色
【发布时间】:2013-03-28 06:23:23
【问题描述】:

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

如果我对Label 控件执行相同操作,我会得到边框和文本为红色,有什么建议吗?

【问题讨论】:

    标签: c# winforms


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2010-12-24
        • 1970-01-01
        • 2011-07-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-16
        • 1970-01-01
        相关资源
        最近更新 更多