【CSharp】【SplashScreen】启动窗体

https://www.codeproject.com/Articles/5454/A-Pretty-Good-Splash-Screen-in-C

使用方式:

public FrmMain()
{
    InitializeComponent();
    this.Opacity = 0.0;
}

private void FrmMain_Load(object sender, EventArgs e)
{
            
    var task = Task.Run(() =>
    {
        try
        {
            SplashScreen.SplashScreen.ShowSplashScreen();
            Application.DoEvents();

            SplashScreen.SplashScreen.SetStatus("初始化数据库");
            DataQuery.DbHelper.InitQuery();

            // 配置文件
            SplashScreen.SplashScreen.SetStatus("加载配置文件");
            this.m_SystemParams = Program.ReadConfig();

            // 存储文件夹
            if (!Directory.Exists(this.m_SystemParams.ImagePath))
                Directory.CreateDirectory(this.m_SystemParams.ImagePath);

            // 扫码枪
            SplashScreen.SplashScreen.SetStatus("初始化扫码枪");
            this.m_SerialHelper = new SerialHelper(this.m_SystemParams);
            this.m_SerialHelper.ConnectedStateChanged += SerialHelper_ConnectedStateChanged;
            this.m_SerialHelper.DataAvailable += SerialHelper_DataAvailable;

            // PLC
            SplashScreen.SplashScreen.SetStatus("初始化控制器");
            this.m_SnapHelper = new SnapHelper(this.m_SystemParams);
            this.m_SnapHelper.ConnectedStateChanged += SnapHelper_ConnectedStateChanged;

            // MSC
            SplashScreen.SplashScreen.SetStatus("初始化MSC");
            this.m_MscHelper = new MscHelper(this.m_SystemParams);
            this.m_MscHelper.ConnectedStateChanged += MscHelper_ConnectedStateChanged;
            this.m_MscHelper.DataAvailable += MscHelper_DataAvailable;

            // Camera
            SplashScreen.SplashScreen.SetStatus("初始化相机");
            this.m_CameraHelper = new CameraHelper(this.m_SystemParams);
            this.m_CameraHelper.ConnectedStateChanged += CameraHelper_ConnectedStateChanged;
            this.m_CameraHelper.DataAvailable += CameraHelper_DataAvailable;

            SplashScreen.SplashScreen.SetStatus("连接扫码枪");
            this.m_SerialHelper.Connect();

            SplashScreen.SplashScreen.SetStatus("连接MSC");
            this.m_MscHelper.Connect();

            SplashScreen.SplashScreen.SetStatus("连接PLC");
            this.m_SnapHelper.Connect();

            SplashScreen.SplashScreen.SetStatus("连接相机");
            this.m_CameraHelper.Connect();

                    
            SplashScreen.SplashScreen.CloseForm();
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    });
    task.Wait();

    this.Opacity = 1.0;
}

 

你可能感兴趣的:(CSharp)