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

Gab*_*iel 4 c# user-controls visibility scrollbars

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

替代文字

vScrollBar是一个UserControl,位于另一个UserControl中.显然,只有在尝试将值设置为true时才会发生这种情况. vScrollBar已经有了它的手柄,正如IsHandleCreated的手表所说的那样.

Han*_*ant 7

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


Jef*_*ata 1

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