让richtextbox不响应鼠标事件
make richtextbox not respond to mouse events
我正在开发一个应用程序,在其中一种形式中,我放置了一个 richtextbox,其中包含一些用户将要输入的文本,我已将 richtextbox 的 ReadOnly 属性 设置为 true,将 form 的 keypreview 设置为 true 和我已经处理了表单按键事件,将蓝色应用到正确的按键,将红色应用到错误的按键到 richtextbox 中的当前字符。现在我需要限制用户只能输入文本,他们不应该使用鼠标 caz select richtextbox 文本,那样他们会弄乱我的应用程序。
提前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
以禁用编辑。
我正在开发一个应用程序,在其中一种形式中,我放置了一个 richtextbox,其中包含一些用户将要输入的文本,我已将 richtextbox 的 ReadOnly 属性 设置为 true,将 form 的 keypreview 设置为 true 和我已经处理了表单按键事件,将蓝色应用到正确的按键,将红色应用到错误的按键到 richtextbox 中的当前字符。现在我需要限制用户只能输入文本,他们不应该使用鼠标 caz select richtextbox 文本,那样他们会弄乱我的应用程序。
提前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
以禁用编辑。