c# - 如何在 Winforms 中为长加载表单显示 "Loading . . . please wait"消息?

标签 c# .net winforms .net-core

我有一个非常慢的表单,因为表单上放置了很多控件。

因此,表单需要很长时间才能加载。

我如何先加载表单,然后显示它,并在加载延迟时显示另一个表单,其中包含“正在加载...请稍候。?”之类的消息

最佳答案

使用单独的线程来显示简单的请稍候消息是多余的,尤其是当您没有太多线程经验时。

一个更简单的方法是创建一个“请稍候”表单,并将其显示为一个无模式窗口,就在缓慢加载的表单之前。主窗体完成加载后,隐藏请稍候窗体。

通过这种方式,您仅使用一个主 UI 线程来首先显示请稍候表单,然后加载您的主表单。

此方法的唯一限制是您的请稍候表单不能设置动画(例如动画 GIF),因为线程正忙于加载您的主表单。

PleaseWaitForm pleaseWait=new PleaseWaitForm ();

// Display form modelessly
pleaseWait.Show();

//  ALlow main UI thread to properly display please wait form.
Application.DoEvents();

// Show or load the main form.
mainForm.ShowDialog();

关于c# - 如何在 Winforms 中为长加载表单显示 "Loading . . . please wait"消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1918158/

相关文章:

c# - SkiaSharp Tiff 支持

winforms - 通过事件目录进行 Winform 用户授权

c# - Xamarin.Firebase.Common 与 Xamarin.Firebase.Auth 不兼容

c# - 更改发布版本格式

c# - WebBrowser 样式在 WinForms 中应用不正确

c# - 如果返回类型可能是 Error 或 Success 对象,如何反序列化 XML

c# - 返回自定义结果的单元测试 ASP.NET Web API 2 Controller

c# - 任务没有第二次完成 [间歇性问题] – 异步/等待

c# - 如何使用 WebBrowser 控件以编程方式更改打印机设置?

c# - 有什么方法可以查看 C# 应用程序的泄漏内存?