Подтвердить что ты не робот

Попытка изменить цвет рамки метки

Я работаю в VB, VS2008, winforms. У меня есть некоторые метки для создания, и я использую BorderStyle = FixedSingle.

Есть ли способ изменить цвет этой границы? Он всегда по умолчанию черным.

4b9b3361

Ответ 1

Если вы не хотите создавать настраиваемый элемент управления, вы можете попробовать следующее:

Подключитесь к событию Paint Label.

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

Взято из здесь Андрей Тозон

Ответ 2

Я объединил решения от 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

Спасибо за помощь!

Ответ 3

Я столкнулся с этой проблемой и в итоге использовал обходной путь.

Создайте настраиваемый элемент управления, состоящий из ярлыка, завернутого в панель.

Затем вы можете использовать панель для создания своей границы и изменить ее цвет по своему желанию.

Я нашел, что это хорошая идея (хотя и немного времени) для того, чтобы все элементы управления в вашем приложении все равно, потому что, когда дело доходит до выяснения, вам нужно настраиваемое свойство или изменить все ваши элементы управления этого тип, вы можете просто изменить базовый элемент управления и изменить все ваше приложение.