尝试更改标签的边框颜色

时间:2009-06-12 16:32:41

标签: .net vb.net winforms custom-controls

我在VB,VS2008工作,winforms。我有一些标签要创建,我正在使用BorderStyle = FixedSingle。

有没有办法改变这个边框的颜色?它总是默认为黑色。

3 个答案:

答案 0 :(得分:32)

如果您不想创建自定义控件,可以试试这个:

连接到Label的绘画活动。

void label1_Paint(object sender, PaintEventArgs e)
{
    ControlPaint.DrawBorder(e.Graphics, label1.DisplayRectangle, Color.Blue, ButtonBorderStyle.Solid);
}

摘自here <{3}}

答案 1 :(得分:12)

我结合了robin.ellis和orandov的解决方案,以获得最适合我的结果。我创建了一个自定义控件,它继承了Label对象,然后覆盖了OnPaint事件。

Public Class nomLabel
   Inherits Label

  Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
      MyBase.OnPaint(e)

      ControlPaint.DrawBorder(e.Graphics, e.ClipRectangle, myColor, ButtonBorderStyle.Solid)
   End Sub

End Class

感谢您的帮助!

答案 2 :(得分:8)

我也遇到了这个问题并最终使用了一种解决方法。

创建一个自定义控件,该控件由包含在面板中的标签组成。

然后,您可以使用面板创建边框并将其颜色更改为您想要的颜色。

我发现在你的应用程序中包装所有控件都是一个好主意(虽然有点耗时),因为在找到你需要一个自定义属性,或者更改为你的所有控件时类型,您只需更改基本控件和整个应用程序更改。