为什么 UserControl 中的 Visible 属性未正确更新?
有时我的 UserControl 的 Visible 属性无法正确更新。它发生在我的应用程序启动时,在 OnFontChanged 中,从 InitializeComponent 内部触发,可能是因为尚未设置其他一些内容。我就是不知道是什么。
vScrollBar
是一个 UserControl,位于另一个 UserControl 内。显然,这只在尝试将值设置为 true 时才会发生。 vScrollBar
已经创建了它的句柄,IsHandleCreated 上的观察表明这是真的。
Sometimes my UserControl's Visible property does not get updated correctly. It happens at my app's boot time, in OnFontChanged, fired from inside InitializeComponent, probably because some other stuff has not been set up yet. I just can't find out what.
vScrollBar
is a UserControl and is inside another UserControl. Apparently, this only happens when trying to set the value to true.vScrollBar
already has its handle created, as a watch on IsHandleCreated says it's true.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
读取 Visible 属性可以为您提供控件的实际可见性状态,而不是“预期”状态。在 InitializeComponent() 方法中,该值始终为 false,直到 Load 事件运行之后,表单或控件才可见。如果容器控件不可见,它也将是 false。
Reading the Visible property gives you the actual visibility state of the control, not the 'intended' state. Which will always be false in the InitializeComponent() method, the form or control isn't visible yet until after the Load event runs. It will also be false if the container control isn't visible.
如果表单尚未加载,它可能仍显示 false。尝试在表单的 OnLoad 事件中设置它。
It may still show false if the Form has not loaded. Try setting it in the Form's OnLoad event.