我在工具应用程序中使用PropertyGrid来显示一个窗口来监视远程应用程序中的对象。每隔一秒左右,我都会从应用程序获取更新,并更新任何已更改的成员的状态,然后更新网格。我调用Refresh()来进行更改。除了一件事之外,这一切都很好。如何防止在PropertyGrid刷新滚动?
说这个物体太高而不适合网格,所以有一个滚动条。用户已经选择了一个网格项目,但也在其上方向上滚动,以便所选项目低于该控件的底部。
问题是,在Refresh()控件会自动将网格项滚动到视图中(奇怪的是,当项在控件顶端之上时,它不会这样做)。
我正在寻找一种方法来防止这种情况,或保存状态,执行刷新(),然后将其设置回来。我尝试在PropertyGrid中的PropertyGridView中获取底层的VScrollBar,并搞乱了“Value”,但它不会永久保留。始终弹出,以便看到该项目。
在滚动期间取消选择项目是我的后备(自动滚动到视图不会发生没有选定的网格项目),但它伤害了可用性一点,所以我正在寻找另一种方式。
任何人遇到类似的东西?
我肯定会以很多方式超越PropertyGrid的限制。 PropertyGridEx让我非常满意,但更重要的是,我将不得不考虑商业解决方案。现在跛行...尽管如此,我得到的结果仍然是.NET团队的证明!耶重用! – scobi 2008-11-17 19:32:56