【发布时间】: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