弹出MessageBox并延迟一段时间后自动关闭的一种方法

本文介绍了一种在Windows Forms应用中实现MessageBox自动关闭的方法。通过创建一个隐藏的Form2作为MessageBox的所有者,并利用Form1中的定时器在指定时间后关闭Form2,从而间接关闭MessageBox。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

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

public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            timer1.Enabled = true;
            Form2 = new Form2();
            MessageBox.Show(Form2, "abcdefg", "test");           
        }

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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值