为什么在UserControl中未正确更新Visible属性?

时间:2010-09-23 15:50:53

标签: c# user-controls visibility scrollbars

有时我的UserControl的Visible属性无法正确更新。它发生在我的应用程序启动时,在OnFontChanged中,从InitializeComponent内部触发,可能是因为尚未设置其他一些东西。我只是找不到什么。

alt text

vScrollBar是一个UserControl,位于另一个UserControl中。显然,只有在尝试将值设置为true时才会发生这种情况。 vScrollBar已经创建了它的句柄,因为IsHandleCreated的监视说它是真的。

2 个答案:

答案 0 :(得分:7)

读取Visible属性可以获得控件的实际可见性状态,而不是“预期”状态。在InitializeComponent()方法中始终为false,表单或控件在 Load事件运行之后才可见。如果容器控件不可见,它也将是错误的。

答案 1 :(得分:1)

如果未加载表单,它仍可能显示为false。尝试在Form的OnLoad事件中进行设置。