使富文本框不响应鼠标事件



我正在开发一个应用程序,在其中一个形式中,我放置了一个富文本框,其中包含一些用户将要键入的文本,我将富文本框的 ReadOnly 属性设置为 true,表单的键预览设置为 true,并且我已经处理了表单按键事件以将蓝色应用于正确的按键,将红色应用于错误的按键应用于富文本框中的当前字符。 现在我需要将用户限制为仅键入文本,他们应该无法使用鼠标 CAZ 选择富文本框文本,这样他们可能会弄乱我的应用程序。

TNX提前

您需要子类RichTextBox并禁用鼠标事件的处理。

public class DisabledRichTextBox : System.Windows.Forms.RichTextBox
{
    // See: http://wiki.winehq.org/List_Of_Windows_Messages
    private const int WM_SETFOCUS   = 0x07;
    private const int WM_ENABLE     = 0x0A;
    private const int WM_SETCURSOR  = 0x20;
    protected override void WndProc(ref System.Windows.Forms.Message m)
    {
        if (!(m.Msg == WM_SETFOCUS || m.Msg == WM_ENABLE || m.Msg == WM_SETCURSOR))
            base.WndProc(ref m);
    }
}

它将充当标签,防止焦点,用户输入,光标更改,而不会实际禁用。

您还需要保留ReadOnly = true以禁用编辑。

最新更新