Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 应用程序启动时,对话框延迟/未完全显示2秒_C#_Winforms_Forms_Controls - Fatal编程技术网

C# 应用程序启动时,对话框延迟/未完全显示2秒

C# 应用程序启动时,对话框延迟/未完全显示2秒,c#,winforms,forms,controls,C#,Winforms,Forms,Controls,我是Winforms开发的新手,我还没有看到Stackoverflow的解决方案,但可能错过了 我打开了一个对话框,但由于应用程序启动处理,它在前2秒左右只显示了一半(即显示边框和背景,显示控件的位置除外)。在最初的2秒钟后显示控件之前,控件位置为白色 我知道我可以在应用程序启动时对其进行延迟,但我更希望在战略位置使用类似于Suspend()/Resume()的配对。我尝试过加载事件,但没有效果。另外,它看起来像是Refresh()中断了挂起/恢复。由于我也希望在应用程序的其他地方使用此策略,因

我是Winforms开发的新手,我还没有看到Stackoverflow的解决方案,但可能错过了

我打开了一个对话框,但由于应用程序启动处理,它在前2秒左右只显示了一半(即显示边框和背景,显示控件的位置除外)。在最初的2秒钟后显示控件之前,控件位置为白色


我知道我可以在应用程序启动时对其进行延迟,但我更希望在战略位置使用类似于
Suspend()
/
Resume()
的配对。我尝试过加载事件,但没有效果。另外,它看起来像是
Refresh()
中断了挂起/恢复。由于我也希望在应用程序的其他地方使用此策略,因此我非常感谢您的想法。我想知道什么样的方法可以适用于这个和其他闪烁严重的区域(或者在完全显示之前会显示很长的延迟,如下面所述的启动对话框)。

试着将长时间运行的代码放在
加载
事件处理程序中。通过将其放入
显示的
事件处理程序中,它会导致表单冻结,直到加载完成,因为显示的事件处理程序不允许处理消息循环中的其他事件,例如
绘制
事件。至少如果您将其放入
Load
事件中,所有长时间运行的代码都会在显示任何内容之前出现

如果您不喜欢延迟,请考虑将长时间运行的代码放入一个在<代码>中显示的事件的计时器中。


如果您想对长时间运行的代码进行更高级的处理,则始终存在
BackgroundWorker

在主窗体的所示事件处理程序中,导致延迟的代码位于何处。