When a WinForm element is disabled, it sort of grays out. Is it possible to disable an element, but adjust the disabled style so it still looks enabled (not grayed out)?
The disabled style is part of standard Windows behavior. If you want to change the style, you'll have to draw the control yourself, meaning that you'll have to handle the Paint
method, and possibly have to override OnPaint
.
See Overriding the OnPaint Method and Custom Control Painting and Rendering.
Preventing a focusable control from taking the focus takes a number of counter-measures. You will have to include a control that does take the focus for this class to be resist all attempts:
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);
}
}