Windows フォーム PropertyGrid コントロールでカスタム UI 動作を実行しようとしています。GridItems のクリックとダブルクリックに応答して状態を変更できるようにしたいと考えています。たとえば、2 進変数または 3 進変数の状態を反転する場合などです。
typename "PropertyGridView" の子を検索することで、基になるビューを取得し、その Click イベントをフックできます。唯一の問題は、私が何をするかです。マウス座標をグリッド項目にマップする関数が見つかりません。
SelectedGridItem がありますが、これは役に立ちません。このプロパティを更新しないコントロールをクリックできる場所が多数あるため、SelectedGridItem が更新されていると仮定して Click に応答すると、多くの誤った結果が得られます。
商用プロパティ グリッド コントロールを購入するか、何らかのグリッドビューに切り替える以外に、ここでできることはありますか? PropertyGrid は、私が必要としているものとほぼ同じです。必要なデータを取得するために、Reflector をさまよい、このコントロールで非常に不親切なことを行うことさえ考えています。:)
詳細: カスタム UITypeEditor クラスの使用については知っていますが、既に他の領域 (カラー ピッカー) でこれを行っています。残念ながら、カスタム UI 作業を行うには、追加のクリックが必要です (一部の UI を参照またはドロップダウンするため)。たとえば、UITypeEditor.PaintValue を使用してチェックボックスを埋め込みましたが、クリックするだけでチェック/チェックを外したいと思っています。