WinForms コントロール (Systems.Windows.Forms.Control を継承) にカスタム デザイナーがアタッチされています (ControlDesigner を継承)。設計時に、コントロール内の特別な領域でクリックなどのマウス イベントを処理する必要があります。その領域でマウス クリックが可能であることを示すには、デフォルトの 4 矢印カーソルを別のものに変更する必要があります。少なくとも、標準の矢印に変更する必要がありますが、それを行う方法が見つかりませんでした。
ControlDesigner.GetHitTest
その特別なクリック四角形に対して true を返すようにメソッドを再定義しましたが、カーソルが領域上にあるときにカーソルが点滅するだけです。数ミリ秒間デフォルトの矢印に変更され、その後 4 矢印カーソルに戻ります。これは、コントロール全体を選択してフォーム上で移動できることを意味します。この仮想メソッドは、カーソルがデフォルトの 4 矢印カーソルに変更された場合にのみ呼び出されるように見えるため、オーバーライドControlDesigner.OnSetCursor
しても効果はありません。(WM_MOUSE* イベントをインターセプトしようとする) を使用したゲームでWndProc
も、良い結果は得られませんでした。
関連書籍のサンプル (Eric White の「GDI+ プログラミング - C# を使用したカスタム コントロールの作成」の SimpleLineControl など) を実装しようとしても、動作は同じです。
私たちの開発環境は、最小要件である VS2010/.NET 4.0 です。この環境およびそれ以降の環境で機能させるにはどうすればよいですか?