首页 > 编程 > C# > 正文

C#实现winform自动关闭MessageBox对话框的方法

2020-01-24 01:55:49
字体:
来源:转载
供稿:网友

本文实例讲述了C#实现winform自动关闭MessageBox对话框的方法。分享给大家供大家参考。具体实现方法如下:

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Runtime.InteropServices; namespace WindowsApplication1 {  public partial class AutoDeleteMessageBox : Form  {   [DllImport("user32.dll", EntryPoint = "FindWindow", CharSet = CharSet.Auto)]   private extern static IntPtr FindWindow(string lpClassName, string lpWindowName);   [DllImport("user32.dll", CharSet = CharSet.Auto)]   public static extern int PostMessage(IntPtr hWnd, int msg, IntPtr wParam, IntPtr lParam);   public const int WM_CLOSE = 0x10;   public AutoDeleteMessageBox()   {    InitializeComponent();   }   private void button1_Click(object sender, EventArgs e)   {    StartKiller();    MessageBox.Show("3秒钟后自动关闭MessageBox窗口", "MessageBox");   }   private void StartKiller()   {    Timer timer = new Timer();    timer.Interval = 3000; //3秒启动    timer.Tick += new EventHandler(Timer_Tick);    timer.Start();   }   private void Timer_Tick(object sender, EventArgs e)   {    KillMessageBox();    //停止Timer    ((Timer)sender).Stop();   }   private void KillMessageBox()   {    //按照MessageBox的标题,找到MessageBox的窗口    IntPtr ptr = FindWindow(null, "MessageBox");    if (ptr != IntPtr.Zero)    {     //找到则关闭MessageBox窗口     PostMessage(ptr, WM_CLOSE, IntPtr.Zero, IntPtr.Zero);    }   }  } }

希望本文所述对大家的C#程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表