【C#】一个Loading窗体载入与销毁的方法
2021-05-03 13:04
1376 查看
写在前面
Minecraft Command Editor 2跳票了近两年的时间(对不起!!)。2021年2月,我重启了MCE项目,并正式命名为Minecraft Command Editor 2021,感谢大家三年来的支持,鞠躬!
在MCE项目中,Main窗体载入前,会进行数据库和其他配置的加载,在这个阶段,因此,在加载的空档期载入一个Loading窗口,有效的解决了从视觉上程序加载慢的问题。今天我们来说一个比较好的Loading窗体载入与销毁的方法。
一个Loading窗体载入与销毁的方法
首先我们来定义一个Form类:
namespace Minecraft_Command_Editor { partial class Loading{} // Loading Form partial class Main{} // Main Form partial class Settings{} // Settings Form partial class About{} // About Form }
在Program类中Main函数中插入:
Loading loading = new Loading(); // Creates the Loading object. loading.ShowDialog(); // Shows the Loading Form as a modal dialog box. if (loading.Visible == false) { Application.Run(new Main()); // Begins running a standard application message loop on the current thread, and makes the Main form visible. }
最后Program类看起来长这样:
static class Program { [STAThread] static void Main() { Application.SetHighDpiMode(HighDpiMode.SystemAware); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Loading loading = new Loading(); // Creates the Loading object. loading.ShowDialog(); // Shows the Loading Form as a modal dialog box. if (loading.Visible == false) { Application.Run(new Main()); // Begins running a standard application message loop on the current thread, and makes the Main form visible. }} }
这是一个单线程程序的Loading窗体载入方法,想要销毁Loading进入到Main窗体,则需要在Loading类的适当位置加入销毁代码即可。 例如:
using System; using System.Windows.Forms; using Functions.System; // Custom namespace namespace Minecraft_Command_Editor { public partial class Loading : Form { private void Loading_Shown(object sender, EventArgs e) { Process.ThreadDelay(512); // Thread delay 512ms. this.Close(); // Close Form. } } }
写在最后
一年前,我在知乎也分享了一个Loading窗体载入的方法,方法不同但思路是一样的。 实际上,关于Main窗体的前置载入方法有很多,大家选择自己喜欢的即可。
相关文章推荐
- C#的WINFORM登录窗体中,验证码的一个方法整理。
- C# winform中一个类中如何调用另一个窗体的控件或方法
- C#设置MDI子窗体只能弹出一个的方法
- C# 窗体中一个类中调用另一个窗体的控件或方法
- c#中一个窗体调用另一个窗体的控件及方法(转贴)
- C#在一个解决方案下怎么在一个窗体中调用另一个窗体中的方法
- C#一个窗体调用另一个窗体的方法
- C# winform中一个类中如何调用另一个窗体的控件或方法
- C#反射方法来处理每个子窗体只保留一个实例
- C# 设置MDI子窗体只能弹出一个的方法
- C#一个窗体Form2获得另一个窗体Form1的方法
- C#实现打开画图的同时载入图片、最大化显示画图窗体的方法
- C#的WINFORM登录窗体中,验证码的一个方法整理。
- c#中一个窗体调用另一个窗体的控件及方法(转贴)
- C#在一个窗体中调用另一个窗体的方法
- C#启动一个外部程序的方法-ShellExecute
- 一个获取相对路径的方法(C#)
- Visual Studio 2005(C#)中只允许一个实例运行的一种方法
- c# 控制台程序调用直接运行一个新程序和隐藏自己的窗体(转)
- 关于在一个类(窗体)中调用另一个类(窗体)中的控件的三种方法