26

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

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

4

3 回答 3

35

如果您不想创建自定义控件,可以尝试以下操作:

连接到标签的绘制事件。

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

Andrej Tozon这里拍摄

于 2009-06-12T18:41:54.110 回答
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

谢谢您的帮助!

于 2009-06-12T19:36:05.463 回答
8

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

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

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

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

于 2009-06-12T17:14:28.407 回答