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