c#在富文本框中禁用光标

时间:2014-04-11 12:52:28

标签: c# pointers richtextbox readonly

如何将richtextbox设置为在readonly时不显示游标/ textlocator。 I.ex.所以,即使你点击它,闪烁的指针也不会出现。

注意:我不是指将鼠标悬停在光标上时应隐藏光标。

3 个答案:

答案 0 :(得分:5)

更改您的Cursor媒体资源:

<RichTextBox Cursor="None"/>

或者如果您仍然希望光标可见,请使用:

<RichTextBox Cursor="Arrow"/>

答案 1 :(得分:2)

使用HideCaret功能。您需要添加对user32.dll的引用,然后您可以使用类似:

的内容
[DllImport("user32.dll")]
static extern bool HideCaret(IntPtr hWnd);

private void TextBoxGotFocus(object sender, EventArgs args)
{
    HideCaret(myControl.Handle);
}

请注意,通常情况下,插入符号仍有一点;它允许用户从控件中选择文本,并向上/向下箭头滚动。

答案 2 :(得分:2)

取决于您创建的应用程序:Winforms还是WPF?

<强>的Winforms:

[DllImport("user32.dll")]
static extern bool HideCaret(IntPtr hWnd);
private void TextBoxGotFocus(object sender, EventArgs args)
{
    HideCaret(myControl.Handle);
}

<强> WPF:

<RichTextBox Cursor="Arrow"/>

注意:
wpf方法强制光标为箭头形式。 Winforms方法只隐藏了Caret光标。