我在工具應用程序中使用PropertyGrid來顯示一個窗口來監視遠程應用程序中的對象。每隔一秒左右,我都會從應用程序獲取更新,並更新任何已更改的成員的狀態,然後更新網格。我調用Refresh()來進行更改。除了一件事之外,這一切都很好。如何防止在PropertyGrid刷新滾動?
說這個物體太高而不適合網格,所以有一個滾動條。用戶已經選擇了一個網格項目,但也在其上方向上滾動,以便所選項目低於該控件的底部。
問題是,在Refresh()控件會自動將網格項滾動到視圖中(奇怪的是,當項在控件頂端之上時,它不會這樣做)。
我正在尋找一種方法來防止這種情況,或保存狀態,執行刷新(),然後將其設置回來。我嘗試在PropertyGrid中的PropertyGridView中獲取底層的VScrollBar,並搞亂了「Value」,但它不會永久保留。始終彈出,以便看到該項目。
在滾動期間取消選擇項目是我的後備(自動滾動到視圖不會發生沒有選定的網格項目),但它傷害了可用性一點,所以我正在尋找另一種方式。
任何人遇到類似的東西?
我肯定會以很多方式超越PropertyGrid的限制。 PropertyGridEx讓我非常滿意,但更重要的是,我將不得不考慮商業解決方案。現在跛行...儘管如此,我得到的結果仍然是.NET團隊的證明!耶重用! – scobi 2008-11-17 19:32:56