zoukankan      html  css  js  c++  java
  • 自动关闭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);
        }
  • 相关阅读:
    learnyou 相关网站
    hdu 3038 How Many Answers Are Wrong
    hdu 3047 Zjnu Stadium 并查集高级应用
    poj 1703 Find them, Catch them
    poj 1182 食物链 (带关系的并查集)
    hdu 1233 还是畅通工程
    hdu 1325 Is It A Tree?
    hdu 1856 More is better
    hdu 1272 小希的迷宫
    POJ – 2524 Ubiquitous Religions
  • 原文地址:https://www.cnblogs.com/randyzhuwei/p/4058715.html
Copyright © 2011-2022 走看看