1. 程式人生 > >c# 自動關閉messagebox

c# 自動關閉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 classAutoDeleteMessageBox : Form     {        [DllImport("user32.dll", EntryPoint ="FindWindow", CharSet = CharSet.Auto)]        private extern static IntPtr FindWindow(stringlpClassName, string lpWindowName);        [DllImport("user32.dll", CharSet =CharSet.Auto)]        public static extern int PostMessage(IntPtrhWnd, 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()        {            Timertimer = new Timer();           timer.Interval = 3000; //3秒啟動            timer.Tick+= new EventHandler(Timer_Tick);           timer.Start();        }        private void Timer_Tick(object sender, EventArgse)        {           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);            }        }     } }

以上轉自http://blog.sina.com.cn/s/blog_8bab807301015n98.html
------------------------------------------------------------------------------------------------------------------------