Trying to change the Border Color of a label

家住魔仙堡 提交于 2019-11-30 16:24:43

问题


I'm working in VB, VS2008, winforms. I've got some labels to create, and I'm using the BorderStyle = FixedSingle.

Is there any way to change the color of this border? It is always defaulting to black.


回答1:


If you don't want to create a custom control you can try this:

Hook up to the Label's paint event.

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

Taken from here by Andrej Tozon




回答2:


I combined the solutions from robin.ellis and orandov to get a result that worked the best for me. I created a custom control that inherited the Label object and then overrode the OnPaint event.

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

Thanks for the help!




回答3:


I ran into this problem as well and ended up using a workaround.

Create a custom control which consists of a label wrapped in a panel.

You can then use the panel to create your border and change it's color to whatever you want.

I've found that it's a good idea (although a little time consuming) to wrap all controls in your application anyways, because when it comes to finding out you need a custom property, or change to all of your controls of that type, you can just change the base control and your entire app changes.



来源:https://stackoverflow.com/questions/987668/trying-to-change-the-border-color-of-a-label

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!