C# winform中自動關閉MessageBox對話框

pb44 9年前發布 | 3K 次閱讀 C#

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); 
        } 
    } 
} 

}</pre>

 本文由用戶 pb44 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!