C# WinForm 提示框延迟自动关闭

有时候我们需要弹出个提示框然后让它自己关闭,然而实际使用中的弹出框确实阻塞进程,网上貌似有一种另类的解决方式,大致思路是把弹出框放到另外的一个窗体上,直接贴代码

主窗体

using System;
using System.Windows.Forms;

namespace WinForm
{
    public partial class MainForm : Form
    {
        public MainForm()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //延迟800毫秒关闭的信息框
            MessageBox.Show(new DelayCloseForm(800), "执行成功!");
        }
    }
}

  

起到延迟作用的窗体

using System;
using System.ComponentModel;
using System.Windows.Forms;

namespace WinForm
{
    public partial class DelayCloseForm : Form
    {
        public DelayCloseForm(int interval = 500)
        {
            InitializeComponent();
            //计时器
            this.components = new Container();
            Timer timer1 = new Timer(this.components);
            timer1.Enabled = true;
            timer1.Interval = interval;
            timer1.Tick += timer1_Tick;
            timer1.Start();
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}