如何确定控件当前是否无效?

时间:2009-03-17 13:37:12

标签: c# .net winforms datagridview invalidation

我正在编写一个托管控件的自定义DataGridView单元类。我正在听Invalidated事件以了解我是否应该重新定位并重新绘制单元格,但是我正在获取循环,因为重新定位单元格会使其他托管单元格无效,然后使第一个单元格无效,依此类推。我不想使用静态成员来避免循环,因为这不会阻止由类似但不相关的单元类引起的循环,如果它们一起使用的话。所以我需要检查网格当前是否有效。我该怎么做?

2 个答案:

答案 0 :(得分:1)

您不应该'监听'无效的事件。当用户控件无效时,会自动调用onpaint。

可能有更好的方法来解决你的终极问题(绘制你的自定义datagridview)。你可以尝试发布一个关于你的实现的详细问题,并询问如何解决它的一些想法,这样你就不必解决这些(看似奇怪的)问题。

答案 1 :(得分:0)

听起来您想要覆盖DataGridViewCell类的Paint成员,而不是尝试侦听并响应Invalidated事件。基类将为您处理,并将图形对象和位置信息直接提供给Paint方法