【发布时间】:2012-05-19 01:16:26
【问题描述】:
我在表单上有一个用户控件,我将其用作数据输入表单。我不断地用新数据显示和隐藏它。
通常(并非总是)相同的两个备注框首先在屏幕上显示一秒钟,然后才能看到完整的控件。
我找到了this 链接,我不确定这是否是我的解决方案,但无论如何我不知道在哪里以及何时调用它。
编辑:我注意到它仅在程序空闲几分钟时才会发生。 我可以一个接一个地显示和隐藏控件10次没问题。但如果我隐藏它并在 2-3 分钟后再次显示它,我就会得到这种行为。
我想这与重新连接到 MsSQL 数据库以提取数据所需的时间有关。但是我怎么能告诉这 2 个盒子像那里的父母一样保持不可见,直到父母准备好显示?
【问题讨论】:
-
在显示控件后但在返回主事件循环之前,您正在做什么?基本上,在控件有机会绘制之前,这听起来像是在发生其他事情,例如数据库访问或其他网络访问。建议是保持控件处于加载状态,但使用 visible=false 直到最后一刻。
-
我做了TicketsBox.Visible = True 可能的最后一件事......
-
你是先做TicketsBox.Visible=False 还是一开始就可见?在 Load 事件上设置断点进行检查。
-
尝试在 VisibleChanged 事件中移动您的 TicketsBox.Visible = True。
-
除非您有异步绑定,否则页面在完全呈现之前不应开始绘制。您是通过后台工作者绑定异步还是更新数据。如果数据如此动态,以至于您无法将其保存在变量中,而是每次获取都返回数据库?
标签: c# .net vb.net user-controls