有多种创建初始屏幕的方法:
您可以依靠的启动画面功能
WindowsFormsApplicationbase
您可以通过在其他UI线程上显示表单并将表单成功加载到主窗口后隐藏起来,来亲自展示实现该功能。
在这篇文章中,我将展示两种解决方案的示例。
注意:那些正在寻找在数据加载期间显示加载窗口或gif动画的人,可以看看这篇文章:在其他线程中加载数据期间显示加载动画
选项1-使用WindowsFormsApplicationbase启动画面功能
- 添加
Microsoft.VisualBasic.dll
对您的项目的引用。 MyApplication
通过派生来创建一个类WindowsFormsApplicationbase
- 覆盖
OnCreateMainForm
并将您要用作启动表单的表单分配给MainForm
属性。 覆盖
OnCreateSplashScreen
并将要显示为初始屏幕的表单分配给SplashScreen
属性。在您的
Main
方法中,创建的实例MyApplication
并调用其Run
方法。
例
using System;using System.Windows.Forms;using Microsoft.VisualBasic.ApplicationServices;static class Program{ /// <summary> /// The main entry point for the application. /// </summary> [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(true); var app = new MyApplication(); app.Run(Environment.GetCommandLineArgs()); }}public class MyApplication : WindowsFormsApplicationbase{ protected override void onCreateMainForm() { MainForm = new YourMainForm(); } protected override void onCreateSplashScreen() { SplashScreen = new YourSplashForm(); }}
选项2-使用其他UI线程实施功能
您可以通过在其他UI线程中显示初始屏幕来自己实现此功能。为此,您可以
Load在
Program课堂上订阅主窗体的事件,并在那里显示和关闭初始屏幕。
例
using System;using System.Threading;using System.Windows.Forms;static class Program{ static Form SplashScreen; static Form MainForm; [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); //Show Splash Form SplashScreen = new Form(); var splashThread = new Thread(new ThreadStart( () => Application.Run(SplashScreen))); splashThread.SetApartmentState(ApartmentState.STA); splashThread.Start(); //Create and Show Main Form MainForm = new Form8(); MainForm.Load += MainForm_LoadCompleted; Application.Run(MainForm); } private static void MainForm_LoadCompleted(object sender, EventArgs e) { if (SplashScreen != null && !SplashScreen.Disposing && !SplashScreen.IsDisposed) SplashScreen.Invoke(new Action(() => SplashScreen.Close())); MainForm.TopMost = true; MainForm.Activate(); MainForm.TopMost = false; }}
注意:要显示平滑的边缘自定义形状的初始屏幕,请查看以下文章:Windows Forms Transparent Background
Image。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)