首页 > 代码库 > 自动关闭Messbox
自动关闭Messbox
/// <summary> /// 自动关闭Messbox /// </summary> public class MessageBoxAutoClose { System.Threading.Timer _timeoutTimer; string _caption; public MessageBoxAutoClose(string text, string caption, int timeout) { _caption = caption; _timeoutTimer = new System.Threading.Timer(OnTimerElapsed, null, timeout, System.Threading.Timeout.Infinite); MessageBox.Show(text, caption); } public MessageBoxAutoClose(string text, string caption, MessageBoxButtons msgButton, int timeout) { _caption = caption; _timeoutTimer = new System.Threading.Timer(OnTimerElapsed, null, timeout, System.Threading.Timeout.Infinite); MessageBox.Show(text, caption, msgButton); } public MessageBoxAutoClose(string text, string caption, MessageBoxButtons msgButton, MessageBoxIcon msgIcon, int timeout) { _caption = caption; _timeoutTimer = new System.Threading.Timer(OnTimerElapsed, null, timeout, System.Threading.Timeout.Infinite); MessageBox.Show(text, caption, msgButton, msgIcon); } /// <summary> /// 提示关闭 /// </summary> /// <param name="text">显示提示内容</param> /// <param name="caption">标题</param> /// <param name="timeout">设定指定毫秒后关闭</param> public static void Show(string text, string caption, int timeout = 2000) { new MessageBoxAutoClose(text, caption, timeout); } /// <summary> /// 提示关闭 /// </summary> /// <param name="text">显示提示内容</param> /// <param name="caption">标题</param> /// <param name="msgButton">提示按钮</param> /// <param name="timeout">设定指定毫秒后关闭</param> public static void Show(string text, string caption, MessageBoxButtons msgButton, int timeout = 2000) { new MessageBoxAutoClose(text, caption, msgButton, timeout); } /// <summary> /// 提示关闭 /// </summary> /// <param name="text">显示提示内容</param> /// <param name="caption">标题</param> /// <param name="msgButton">提示按钮</param> /// <param name="msgIcon">提示图标</param> /// <param name="timeout">设定指定毫秒后关闭</param> public static void Show(string text, string caption, MessageBoxButtons msgButton, MessageBoxIcon msgIcon, int timeout = 2000) { new MessageBoxAutoClose(text, caption, msgButton, msgIcon, timeout); } void OnTimerElapsed(object state) { IntPtr mbWnd = FindWindow(null, _caption); if (mbWnd != IntPtr.Zero) SendMessage(mbWnd, WM_CLOSE, IntPtr.Zero, IntPtr.Zero); _timeoutTimer.Dispose(); } const int WM_CLOSE = 0x0010; [System.Runtime.InteropServices.DllImport("user32.dll", SetLastError = true)] static extern IntPtr FindWindow(string lpClassName, string lpWindowName); [System.Runtime.InteropServices.DllImport("user32.dll", CharSet = System.Runtime.InteropServices.CharSet.Auto)] static extern IntPtr SendMessage(IntPtr hWnd, UInt32 Msg, IntPtr wParam, IntPtr lParam); }
自动关闭Messbox
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。