我在工具应用程序中使用 PropertyGrid 来显示一个窗口来监视远程应用程序中的对象。每隔一秒左右,我就会从应用程序中获取任何已更改成员状态的更新,然后我会更新网格。我调用 Refresh() 进行更改。除了一件事,这一切都很好。
假设对象太高而无法放入网格中,因此有一个滚动条。用户选择了一个网格项目,但也向上滚动到它上方,以便所选项目位于控件底部的下方。
问题是在 Refresh() 控件会自动将网格项目滚动到视图中(奇怪的是,当项目高于控件顶部时它不会这样做)。
我正在寻找一种方法来防止这种情况或保存状态,执行 Refresh(),然后将其设置回来。我尝试在 PropertyGrid 内的 PropertyGridView 中获取底层 VScrollBar,并弄乱“值”,但它不会永久设置。总是弹出,所以项目在视图中。
在滚动期间取消选择该项目是我的后备(自动滚动到视图不会发生没有选择的网格项目)但它有点损害可用性所以我正在寻找另一种方式。
有人遇到类似的事情吗?