• c# winform 自动关闭messagebox 模拟回车


     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 }
    View Code
  • 相关阅读:
    Java实现 LeetCode 189 旋转数组
    Java实现 蓝桥杯 算式最大值
    Java实现 蓝桥杯 算式最大值
    Java实现 蓝桥杯 算式最大值
    Java实现 神犇的悲惨一生
    编译Boost 详细步骤 适用 VC6 VS2003 VS2005 VS2008 VS2010
    boost:asio编译
    VS2008下编译BOOST 1.39的ASIO库
    Boost下载安装编译配置使用指南
    Boost下载安装编译配置使用指南(含Windows和Linux
  • 原文地址:https://www.cnblogs.com/zhangzhu/p/3211974.html
Copyright © 2020-2023  润新知