如何更改禁用控件的样式?

时间:2010-09-27 15:56:08

标签: c# winforms

当禁用WinForm元素时,它会变灰。是否可以禁用元素,但调整禁用的样式以使其仍然显示为启用(不显示为灰色)?

2 个答案:

答案 0 :(得分:5)

防止可聚焦控制从焦点出发需要采取一些措施。您必须包含一个 控件,该类将重点放在此类上,以抵制所有尝试:

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);
    }
}

答案 1 :(得分:0)

禁用的样式是标准Windows行为的一部分。如果要更改样式,则必须自己绘制控件,这意味着您必须处理Paint方法,并且可能必须覆盖OnPaint

请参阅Overriding the OnPaint MethodCustom Control Painting and Rendering