テキスト入力を可能にするWinFormsコントロールをC#で作成しています(VS2008、.net 3.5を使用)。通常のWindowsカレットを表示するために必要なWin32API関数をUser32.dllからインポートしましたが、これらはすべて正常に機能していますが、希望どおりに表示されていません。
テキストは空白の境界線でコントロールに表示され、Graphics.SetClip()を使用してこのマージンをクリアにします。カレットを同じ領域にクリップしたいのですが、ペイントせず、クリッピング領域を設定するための明確なAPI関数がないため、これを行う方法がわかりません。明らかなことを見逃したことがありますか?
カレットは、それが描かれているコントロールの内側にクリップされています。したがって、1つの解決策は、境界線のない別のサブコントロールにテキストを配置することである可能性があることを認識しています。ただし、コントロールのこの部分を再設計するよりも簡単な方法がある場合は、最初にそれを探します。
助けてくれてありがとう!