Trying to change the Border Color of a label

后端 未结 3 1247
青春惊慌失措
青春惊慌失措 2021-01-01 10:57

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 bo

相关标签:
3条回答
  • 2021-01-01 11:45

    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

    0 讨论(0)
  • 2021-01-01 11:46

    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!

    0 讨论(0)
  • 2021-01-01 11:52

    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.

    0 讨论(0)
提交回复
热议问题