找到了解决办法,小记一下。分享给有需要的人和以后再需要时的自己。
表现
大概就是,当鼠标在选中状态下的文本上移动时,会出现 箭头指针 和 输入指针 的交替闪烁。
文字描述不清楚,上动图!
解决方案
非常简单,只需要覆写一下 RichTextBox 控件。
RichTextBoxEx.cs1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| public class RichTextBoxEx : RichTextBox { [DllImport("user32.dll")] public static extern int SetCursor(IntPtr cursor); private const int WM_SETCURSOR = 0x0020;
protected override void WndProc(ref Message m) { if (m.Msg == WM_SETCURSOR) { SetCursor(Cursors.IBeam.Handle); m.Result = new IntPtr(1); return; } base.WndProc(ref m); } }
|
其它影响
- 使用解决方案后会造成整个控件内的其它子控件同样无法切换指针
- 例如:设置为非箭头指针后,拖动滚动条时的指针样式也会被修改成解决方案内设置的光标。
- 其它暂未发现。