【小白专用】c#制作简单启动画面 更新2024.1.1

VS2020创建一个C# Windows窗体应用程序,将主窗体改名为FormMain,再创建一个窗体起名为SplashScreen。向程序中加载一个图片作为启动画面,如下图

然后编辑SplashScreen.cs代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace AliWorkbenchProgram
{


    /// <summary>
    /// 启动画面
    /// </summary>
    public partial class SplashScreen : Form
    {
        /// <summary>
        /// 启动画面本身
        /// </summary>
        static SplashScreen instance;

        /// <summary>
        /// 显示的图片
        /// </summary>
        Bitmap bitmap;

        public static SplashScreen Instance
        {
            get
            {
                return instance;
            }
            set
            {
                instance = value;
            }
        }

        public SplashScreen()
        {
            InitializeComponent();

            // 设置窗体的类型
            
            FormBorderStyle = FormBorderStyle.None;
            StartPosition = FormStartPosition.CenterScreen;
            ShowInTaskbar = false;


        }

        

        public static void ShowSplashScreen()
        {
            instance = new SplashScreen();
            instance.Show();
        }
    }





}

然后在主程序启动时调用

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace AliWorkbenchProgram
{
    internal static class Program
    {
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            // 启动
            SplashScreen.ShowSplashScreen();

            // 进行自己的操作:加载组件,加载文件等等
            // 示例代码为休眠一会
            System.Threading.Thread.Sleep(3000);

            // 关闭
            if (SplashScreen.Instance != null)
            {
                SplashScreen.Instance.BeginInvoke(new MethodInvoker(SplashScreen.Instance.Dispose));
                SplashScreen.Instance = null;
            }





            Application.Run(new FormMain());
        }
    }
}