Я хотел бы переопределить System.Windows.Forms.UserControl для рисования пользовательской границы (например, с использованием пользовательского цвета). Невозможно использовать встроенные классы, потому что единственный метод / свойство, на которое вы можете повлиять на поведение границы, - это BorderStyle.
Переопределение OnPaint следующим образом (код ниже) не является хорошим решением, потому что оно в основном рисует другую границу поверх оригинальной.
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
if (this.BorderStyle == BorderStyle.FixedSingle)
ControlPaint.DrawBorder(e.Graphics, this.ClientRectangle, Color.LightGray, ButtonBorderStyle.Solid);
}
Кто-нибудь знает, как переопределить рисование границ в пользовательском элементе управления?
Поместить этот пользовательский элемент управления в панель по определенным причинам не вариант в моем случае.