ツール アプリで PropertyGrid を使用して、リモート アプリでオブジェクトを監視するためのウィンドウを表示しています。約 1 秒ごとに、変更されたメンバーの状態をアプリから更新し、グリッドを更新します。Refresh() を呼び出して、変更を反映させます。これは、1 つのことを除いてすべてうまく機能します。
オブジェクトが高すぎてグリッドに収まらないため、スクロールバーがあるとします。ユーザーはグリッド項目を選択しましたが、その上にスクロールしたため、選択した項目がコントロールの下部に表示されました。
問題は、Refresh() で、コントロールが自動的にグリッド アイテムを表示するようにスクロールすることです (奇妙なことに、アイテムがコントロールの上部にある場合、これは行われません)。
これを防ぐか、状態を保存し、Refresh() を実行してから元に戻す方法を探しています。PropertyGrid 内の PropertyGridView で基になる VScrollBar を取得し、「値」をいじってみましたが、永続的に設定されたままにはなりません。アイテムが表示されるように、常にポップ バックします。
スクロール中にアイテムの選択を解除することは私のフォールバックです (グリッドアイテムが選択されていない場合、ビューへの自動スクロールは発生しません) が、使いやすさが少し損なわれるため、別の方法を探しています。
似たようなことに出くわした人はいますか?