C# 应用程序启动时,对话框延迟/未完全显示2秒
我是Winforms开发的新手,我还没有看到Stackoverflow的解决方案,但可能错过了 我打开了一个对话框,但由于应用程序启动处理,它在前2秒左右只显示了一半(即显示边框和背景,显示控件的位置除外)。在最初的2秒钟后显示控件之前,控件位置为白色C# 应用程序启动时,对话框延迟/未完全显示2秒,c#,winforms,forms,controls,C#,Winforms,Forms,Controls,我是Winforms开发的新手,我还没有看到Stackoverflow的解决方案,但可能错过了 我打开了一个对话框,但由于应用程序启动处理,它在前2秒左右只显示了一半(即显示边框和背景,显示控件的位置除外)。在最初的2秒钟后显示控件之前,控件位置为白色 我知道我可以在应用程序启动时对其进行延迟,但我更希望在战略位置使用类似于Suspend()/Resume()的配对。我尝试过加载事件,但没有效果。另外,它看起来像是Refresh()中断了挂起/恢复。由于我也希望在应用程序的其他地方使用此策略,因
我知道我可以在应用程序启动时对其进行延迟,但我更希望在战略位置使用类似于
Suspend()
/Resume()
的配对。我尝试过加载事件,但没有效果。另外,它看起来像是Refresh()
中断了挂起/恢复。由于我也希望在应用程序的其他地方使用此策略,因此我非常感谢您的想法。我想知道什么样的方法可以适用于这个和其他闪烁严重的区域(或者在完全显示之前会显示很长的延迟,如下面所述的启动对话框)。试着将长时间运行的代码放在加载
事件处理程序中。通过将其放入显示的事件处理程序中,它会导致表单冻结,直到加载完成,因为显示的事件处理程序不允许处理消息循环中的其他事件,例如绘制事件。至少如果您将其放入Load
事件中,所有长时间运行的代码都会在显示任何内容之前出现
如果您不喜欢延迟,请考虑将长时间运行的代码放入一个在<代码>中显示的事件的计时器中。
如果您想对长时间运行的代码进行更高级的处理,则始终存在BackgroundWorker
。在主窗体的所示事件处理程序中,导致延迟的代码位于何处。