弹出MessageBox并延迟一段时间后自动关闭的一种方法(仅供参考)

   从网上看到MessageBox会导致阻塞,要想延时后自动关闭只能发送Enter或者向指定窗口发送关闭消息。这些方法都比较麻烦,有一种更为简便的方法,思路是:在Form1里生成一个新的窗口Form2,Form2窗口不显示,使用MessageBox.Show()指定所有者是Form2,Form1的定时器延时一段时间后关闭Form2,这样一来关闭Form2的同时,MessageBox也被关闭了。

    需要注意的是,Form2应该是Form1类的一个成员,这样定时器里才能调用Form2.close()用以关闭Form2代码如下:

    Form1里有个按钮,Form2是一个空窗体。

  public partial class Form1 : Form
    {

     Form2 Form2;
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            timer1.Enabled = true;
            Form2 = new Form2();
            MessageBox.Show(Form2, "你好", "提示");           
        }

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

你可能感兴趣的:(C#学习笔记)