|
分類:[.NET 全般]
C#.NET 2010expressで開発しています。 TreeViewには、チェックボックスを表示する機能が元からありますが、そこにさらにもうひとつチェックボックスを表示して2種類のステータスをON・OFFする、というのが目標です。
TreeViewDrawModeをOwnerDrawTextとして、見た目上はチェックボックスが2つあるものを表示できました。ラベルを表示する場所を少し右にずらし、その空いた所にチェックボックスを表示しました。 ここまできて問題があり、先に進めません。
・クリックの反応する範囲が元のままです。 MouseDownイベントにて、自力でクリック判定を行うも、元のヒットチェックが残っていて新しいチェックボックスをクリックしたときにラベルクリックのように選択を行なってしまいます。ヒットテスト範囲を適切にしたいです。 ヒットテストに使用するboundsを変えようとしましたが、編集できない(読み取り専用です、とエラーが出る)のでそこを変える対処ができません。
元のラベルのヒットチェックを無効にするか変更したいのですが、どのようにすればいいでしょうか? また、新しいチェックボックスをクリックするときに選択を一時的に回避するアイデアなどありましたら、お願いします。
|