1

Windows フォーム PropertyGrid コントロールでカスタム UI 動作を実行しようとしています。GridItems のクリックとダブルクリックに応答して状態を変更できるようにしたいと考えています。たとえば、2 進変数または 3 進変数の状態を反転する場合などです。

typename "PropertyGridView" の子を検索することで、基になるビューを取得し、その Click イベントをフックできます。唯一の問題は、私が何をするかです。マウス座標をグリッド項目にマップする関数が見つかりません。

SelectedGridItem がありますが、これは役に立ちません。このプロパティを更新しないコントロールをクリックできる場所が多数あるため、SelectedGridItem が更新されていると仮定して Click に応答すると、多くの誤った結果が得られます。

商用プロパティ グリッド コントロールを購入するか、何らかのグリッドビューに切り替える以外に、ここでできることはありますか? PropertyGrid は、私が必要としているものとほぼ同じです。必要なデータを取得するために、Reflector をさまよい、このコントロールで非常に不親切なことを行うことさえ考えています。:)

詳細: カスタム UITypeEditor クラスの使用については知っていますが、既に他の領域 (カラー ピッカー) でこれを行っています。残念ながら、カスタム UI 作業を行うには、追加のクリックが必要です (一部の UI を参照またはドロップダウンするため)。たとえば、UITypeEditor.PaintValue を使用してチェックボックスを埋め込みましたが、クリックするだけでチェック/チェックを外したいと思っています。

4

1 に答える 1

2

単純型の値を反転する必要がある場合は、プロパティ グリッドに列挙値を表示できます。これは、ドロップダウン リストとして自動的に表示されます。もっと賢い UI エディターを作成する必要がある場合は、プロパティ グリッドでカスタム UI を作成する方法を説明している次の記事を参照することをお勧めします: http://msdn.microsoft.com/en-us/library/ aa302334.aspx http://msdn.microsoft.com/en-us/library/aa302326.aspx

プロパティ グリッドの値の変更を処理して、アプリケーションで何かを実行したり、プロパティ グリッドの値を変更したりする場合は、プロパティ グリッドの各変更後に発生する OnPropertyValueChanged を処理できます。

独自の UI エディターを作成できるようになれば、マウス クリックとマウスのダブル クリックを処理する必要はありません。UI エディターは、ドロップダウン エディターまたはモーダル エディターにすることができます。繰り返しますが、上記の記事を読むことを強くお勧めします。彼らはかなり良いです。

于 2008-09-23T16:27:46.367 に答える