[C#] C# winform中自动关闭MessageBox对话框 →→→→→进入此内容的聊天室

来自 , 2020-05-15, 写在 C#, 查看 101 次.
URL http://www.code666.cn/view/0b9b6d6d
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Text;
  7. using System.Windows.Forms;
  8. using System.Runtime.InteropServices;
  9.    
  10. namespace WindowsApplication1
  11. {
  12.     public partial class AutoDeleteMessageBox : Form
  13.     {
  14.         [DllImport("user32.dll", EntryPoint = "FindWindow", CharSet = CharSet.Auto)]
  15.         private extern static IntPtr FindWindow(string lpClassName, string lpWindowName);
  16.    
  17.         [DllImport("user32.dll", CharSet = CharSet.Auto)]
  18.         public static extern int PostMessage(IntPtr hWnd, int msg, IntPtr wParam, IntPtr lParam);
  19.    
  20.         public const int WM_CLOSE = 0x10;
  21.    
  22.         public AutoDeleteMessageBox()
  23.         {
  24.             InitializeComponent();
  25.         }
  26.    
  27.         private void button1_Click(object sender, EventArgs e)
  28.         {
  29.             StartKiller();
  30.             MessageBox.Show("3秒钟后自动关闭MessageBox窗口", "MessageBox");
  31.         }
  32.    
  33.         private void StartKiller()
  34.         {
  35.             Timer timer = new Timer();
  36.             timer.Interval = 3000; //3秒启动
  37.             timer.Tick += new EventHandler(Timer_Tick);
  38.             timer.Start();
  39.         }
  40.    
  41.         private void Timer_Tick(object sender, EventArgs e)
  42.         {
  43.             KillMessageBox();
  44.             //停止Timer
  45.             ((Timer)sender).Stop();
  46.         }
  47.    
  48.         private void KillMessageBox()
  49.         {
  50.             //按照MessageBox的标题,找到MessageBox的窗口
  51.             IntPtr ptr = FindWindow(null, "MessageBox");
  52.             if (ptr != IntPtr.Zero)
  53.             {
  54.                 //找到则关闭MessageBox窗口
  55.                 PostMessage(ptr, WM_CLOSE, IntPtr.Zero, IntPtr.Zero);
  56.             }
  57.         }
  58.     }
  59. }
  60. //csharp/6828

回复 "C# winform中自动关闭MessageBox对话框"

这儿你可以回复上面这条便签

captcha