C# 添加启动窗口(启动界面) 作者:马育民 • 2025-03-10 22:46 • 阅读:10008 # 说明 类似启动word,由于启动速度慢,先打开一个窗口,并显示进度条,加载完毕后,才显示主窗口 # 第一步:实现启动窗口 ### 创建启动窗口 界面如下图:  ### 添加进度条 略,没有设置其他属性 ### backgroundWorker 设置 `DoWork`、`ProgressChanged`、`RunWorkerCompleted` 3个事件函数 ### 代码 ``` public partial class StartForm : Form { public StartForm() { InitializeComponent(); this.FormBorderStyle = FormBorderStyle.None; //this.TopMost = true; // 显示在最前,窗口开始显示进度条时是透明的 this.StartPosition= FormStartPosition.CenterScreen; progressBgWorker.WorkerReportsProgress= true; // 执行worker progressBgWorker.RunWorkerAsync(); } private void progressBgWorker_DoWork(object sender, DoWorkEventArgs e) { //设置完成进度 progressBgWorker.ReportProgress(10); // 这里写耗时操作 progressBgWorker.ReportProgress(20); // 这里写耗时操作 progressBgWorker.ReportProgress(40); // 这里写耗时操作 progressBgWorker.ReportProgress(60); // 这里写耗时操作 progressBgWorker.ReportProgress(80); // 这里写耗时操作 progressBgWorker.ReportProgress(99); Thread.Sleep(600); } private void progressBgWorker_ProgressChanged(object sender, ProgressChangedEventArgs e) { this.progressBar.Value = e.ProgressPercentage; } private void progressBgWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { DialogResult = DialogResult.OK; } } ``` # 第二步:修改Program 注释掉下面代码: ``` Application.Run(new Form1()); ``` 然后添加下面代码: ``` StartForm startForm= new StartForm(); if (DialogResult.OK == startForm.ShowDialog()) { // 关闭对话框不会销毁,调用Dispose()才销毁 startForm.Dispose(); Application.Run(new Form1()); } ``` 参考: https://www.cnblogs.com/gzskys/p/5661302.html 原文出处:https://malaoshi.top/show_1GWjgsaorMb.html