【问题标题】:How do I find out whether a control is currently invalidating?如何确定控件当前是否正在失效?
【发布时间】:2009-03-17 13:37:11
【问题描述】:

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

【问题讨论】:

    标签: c# .net winforms datagridview invalidation


    【解决方案1】:

    您不必“收听”无效事件。当用户控件失效时,会自动调用 onpaint。

    可能有更好的方法来解决您的最终问题(绘制您的自定义数据网格视图)。您可以尝试发布一个关于您的实施的详细问题,并询问一些关于如何实施的想法,这样您就不必解决这些(看似奇怪的)问题。

    【讨论】:

    【解决方案2】:

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多