当禁用WinForm元素时,它会变灰。是否可以禁用元素,但调整禁用的样式以使其仍然显示为启用(不显示为灰色)?
答案 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 Method和Custom Control Painting and Rendering。