【发布时间】:2009-10-10 20:30:53
【问题描述】:
我有一个扩展 PropertyGrid 的控件,它允许用户设置我的一些程序对象的属性。这些对象有一个事件,当它们的某个属性发生更改时会引发该事件,并且 PropertyGrid 订阅此事件,以便在属性更改时刷新自身。 My problem occurs when large numbers of objects are selected, and the user sets a property on all of the objects at once.控件被 Refresh() 请求淹没,这需要很长时间(例如,在打开自动刷新功能的情况下,在大约 300 个对象上设置属性大约需要 20 秒,而在打开自动刷新功能时只需几分之一秒关闭)。
我想阻止事件处理程序在属性网格正在设置属性的过程中刷新网格,但不幸的是我无法找到任何方法来确定网格何时“开始”和“停止”设置属性。我希望有一些方法或我可以覆盖的东西,例如......
override void OnSetPropertyStart()
{
suppressRefresh = true;
}
override void OnSetPropertyEnd()
{
suppressRefresh = false;
}
不幸的是,情况似乎并非如此。有没有其他方法可以确定属性网格何时设置属性,或者以其他方式实现相同的效果?
【问题讨论】:
标签: c# winforms propertygrid