更好的启动画面制作方法
本文关键字:制作方法 动画 启动 更好 | 更新日期: 2023-09-27 17:51:22
此刻我得到了这个
更新:感谢所有的答案。
private void Form1_Load(object sender, EventArgs e)
{
//hide() doesnt help
Thread init = new Thread(InitApplication);
init.IsBackground = true;
init.Start();
}
InitApplication至少需要5秒以上才能完成并写入所有设置。我想让我的溅屏一直保持到那个时候。
补充道:
private readonly SplashScreen _splash;
public Form1(SplashScreen splashy)
{
_splash = splashy;
InitializeComponent();
}
和我得到
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
SplashScreen splashy = new SplashScreen();
splashy.Show();
Application.DoEvents();
Application.Run(new Form1(splashy));
}
它正在做它应该做的事情,然而,现在我看到splashform顶部的form1。我在哪里可以添加隐藏和显示方法,以便它只显示闪屏和form1完全加载时弹出
尝试从UI线程加载闪屏,然后使用后台工作线程执行InitApplication()
。后台工作线程可以将进程通知UI线程。
MSDN上的BackgroundWorker类
BackgroundWorker类允许你在一个单独的专用线程上运行一个操作。下载和数据库事务等耗时的操作可能会导致用户界面(UI)在运行时看起来好像停止了响应。当你想要一个响应的UI,并且你面临着与这些操作相关的长时间延迟时,BackgroundWorker类提供了一个方便的解决方案。
你可以使用Async Await,后台工作者或线程来初始化你的应用程序等。这些是按照易于使用和遵循一般模式的顺序编写的。
使用一个正常的窗口窗体,在那里使用进度条,gif图像等你最喜欢的。在表单加载或表单显示事件启动后台任务,当它完成时,关闭普通表单并加载主应用程序表单。
如果你的InitApplication有任何处理GUI的调用,你将不得不改变该调用并在GUI线程上调用所需的操作。