Я хотел бы расширить элемент управления System.Windows.Forms.ComboBox с помощью свойства ReadOnly, которое будет отображать текст выбранного элемента (аналогично метке), когда ReadOnly = true. (Мне не нравится отключенный вид, достигаемый установкой Enabled = false)
Как мне это сделать в winforms? Это было действительно просто в ASP.NET, где все, что мне нужно было сделать, это переопределить метод Render. Однако с winforms это не так просто.
Из того, что я собираю, мне нужно
а) Переопределить метод OnPaint
b) Вызовите this.SetStyle (ControlStyles.UserPaint, true), чтобы вызывался OnPaint.
Но теперь мне кажется, что я должен сделать ВСЕ рисование самостоятельно. Это правда? Разве нельзя позволить базовому ComboBox иметь дело с рисованием элемента управления, когда ReadOnly = false? Кроме того, какие ControlStyles я должен использовать?