加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 如何防止在PropertyGrid中刷新?

发布时间:2020-12-16 01:29:13 所属栏目:百科 来源:网络整理
导读:我在工具应用程序中使用PropertyGrid来显示一个窗口来监视远程应用程序中的对象.每隔一秒左右,我从应用程序获得更新,其中包含已更改的任何成员的状态,并更新网格.我调用Refresh()来进行更改.这一切都很有效,除了一件事. 假设对象太高而无法放入网格中,因此有
我在工具应用程序中使用PropertyGrid来显示一个窗口来监视远程应用程序中的对象.每隔一秒左右,我从应用程序获得更新,其中包含已更改的任何成员的状态,并更新网格.我调用Refresh()来进行更改.这一切都很有效,除了一件事.

假设对象太高而无法放入网格中,因此有一个滚动条.用户已选择网格项,但也在其上方向上滚动,以便所选项位于控件的底部下方.

问题是,在Refresh()上,控件会自动将网格项目滚动到视图中(奇怪的是,当项目位于控件顶部之上时,它不会执行此操作).

我正在寻找一种方法来阻止这种情况,或者保存状态,执行Refresh(),然后将其设置回来.我尝试在PropertyGrid中的PropertyGridView中获取底层的VScrollBar,并弄乱“Value”,但它不会永久保留.始终弹回,以便项目在视图中.

在滚动期间取消选择项目是我的后备(自动滚动到视图不会发生没有选定的网格项目)但它有点伤害可用性所以我正在寻找另一种方式.

有人碰到类似的东西吗?

解决方法

这在MS PropertyGrid中是不可能的.这个组件有太多无法访问的内部组件,为您提供了所要求的灵活性,并且您意识到自己不一致(您在网格下面有一个属性但在上面时没有这个问题).这就是我创建 Smart PropertyGrid.Net的原因.如果商业产品是你的选择,这个网格可以选择存储属性状态,并在你对网格进行操作后恢复它们(如Refresh()),没有任何闪烁.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读