【问题标题】:Control Initialization-Complete Indication?控制初始化-完成指示?
【发布时间】:2012-08-07 01:31:11
【问题描述】:

编写自定义控件(继承 Control 和 UserControl)。

在控件的构造函数中,控件的属性值仍然无效(例如位置、高度、宽度、文本等)。 只有在构造函数返回后才会调用属性设置器。

考虑控制对象初始化完成的时间点,即在所有属性的值已经初始设置之后,并且对象可以使用(即第一次绘制)。这个时间点可以在运行时被截获吗? 是否有某种“就绪”或“初始化完成”控制事件,或其他一些可以在运行时截获的指示,在第一次绘制控制表面之前,即在第一次调用“OnPaint”事件处理程序之前

非常感谢。

在 VB2005 上使用 Winforms

【问题讨论】:

  • 您好,如果您接受一些问题的答案,也许会有更多人愿意提供帮助。
  • 抱歉,我没有意识到“接受”的重要性。我只是通过对提供帮助的人的评论表示感谢。应该更正一下,BL"N。谢谢你的来信。
  • 为什么不能在 OnPaint 中调用,并确保只调用一次?
  • 我当然可以这样做,但这似乎不是一种正确的编码方法。考虑一个图形控件每秒刷新其表面 100 次(或更多)。它每次都会冗余地执行“Is First Paint”布尔检查。尽管运行时消耗成本不会太高(每秒 100 次布尔检查),但这似乎是一种缺乏方法,或者换句话说:必须有更好的“更清洁”的方法来做到这一点:-)

标签: .net vb.net winforms vb6 controls


【解决方案1】:

看看Control Inspector 这是一个很酷的小实用程序,可以显示控件的事件顺序。文章中的截图可能会回答您的问题。

【讨论】:

  • 当然是一个简洁的应用程序。希望我能找到答案......谢谢。
  • +1 为应用程序,但仍未找到答案。再次感谢您的好意。
猜你喜欢
  • 1970-01-01
  • 2015-01-18
  • 2012-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-10
  • 1970-01-01
相关资源
最近更新 更多