作成したRichTextBoxで文字列を選択している状態にしてその部分にカーソルを移動すると、なぜかカーソルがチラチラします。これ、どうなっているのでしょうか?

画像ではちょっとわかりませんが、文字列が選択されている部分のうえをカーソルが移動するとカーソルがAllow型とBeam型に高速で切り替わり、チラチラして落ち着かないのです。
解決策はコレ!
WM_SETCURSORを捕捉してSetCursor関数を呼び出します。
WM_SETCURSOR メッセージは、マウス入力がキャプチャされていない状態でマウスカーソルがウィンドウ内で動いたときに送信されます。
アプリケーションがこのメッセージを処理した場合は、以降の操作を中断するには 1 を、以降の操作を続けるには 0 を返します。
ということでSetCursor関数を呼び出して、以降の操作を中断するために 1 を返す。これでカーソルがチラチラして鬱陶しく感じることはありません。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | public class RichTextBoxEx : RichTextBox {     protected override void WndProc(ref Message m)     {         const int WM_SETCURSOR = 0x20;         if (m.Msg == WM_SETCURSOR)         {             SetCursor(mCursor.Handle);             m.Result = new IntPtr(1);             return;         }         base.WndProc(ref m);     }     public Cursor mCursor = Cursors.IBeam;     public override Cursor Cursor     {         set { mCursor = value; }         get { return mCursor; }     }     [System.Runtime.InteropServices.DllImport("user32.dll")]     public static extern int SetCursor(IntPtr cursor); } | 
