我正在开发一个应用程序,在其中一个形式中,我放置了一个富文本框,其中包含一些用户将要键入的文本,我将富文本框的 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
以禁用编辑。