Как изменить стиль отключенного элемента управления? - PullRequest
3 голосов
/ 27 сентября 2010

Когда элемент WinForm отключен, он вроде не работает. Можно ли отключить элемент, но отрегулировать отключенный стиль, чтобы он по-прежнему выглядел включенным (не серым)?

Ответы [ 2 ]

5 голосов
/ 27 сентября 2010

Чтобы предотвратить фокусировку на элементе управления, требуется ряд контрмер.Вы должны будете включить элемент управления, который делает , чтобы этот класс сопротивлялся всем попыткам:

using System;
using System.Windows.Forms;

class RichLabel : RichTextBox {
    public RichLabel() {
        this.ReadOnly = true;
        this.TabStop = false;
        this.SetStyle(ControlStyles.Selectable, false);
    }
    protected override void OnEnter(EventArgs e) {
        if (!DesignMode) this.Parent.SelectNextControl(this, true, true, true, true);
        base.OnEnter(e);
    }
    protected override void WndProc(ref Message m) {
        if (m.Msg < 0x201 || m.Msg > 0x20e)
            base.WndProc(ref m);
    }
}
0 голосов
/ 27 сентября 2010

Отключенный стиль является частью стандартного поведения Windows. Если вы хотите изменить стиль, вам придется нарисовать элемент управления самостоятельно, то есть вам придется обрабатывать метод Paint и, возможно, придется переопределить OnPaint.

См. Переопределение метода OnPaint и Пользовательский элемент управления Рисование и рендеринг .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...