C#语言编写的WinForm程序隐藏TextBox或RichTextBox的光标

时间:2022-09-03 18:58:12

首先这里说的光标指的是闪烁的录入位置处的标记位。TextBox和RichTextBox的解决隐藏光标的方式

1> 将TextBox的TabStop属性设置为false;

2> 在程序中相应位置加入下列代码:

using System.Runtime.InteropServices;
……
[DllImport(
"user32", EntryPoint= "HideCaret")]
private static externbool HideCaret(IntPtr hWnd);
……
在TextBox的MouseDown、MouseMove、KeyUp事件中添入:
HideCaret(((TextBox)sender).Handle);

问题:以上代码解决了鼠标点击拖动选择都不显示闪烁光标,但是无法解决在使用按键按下时(如按下左右移动箭头)光标的隐藏。