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);
        }
  • 相关阅读:
    hdu-4638
    一个简单的询问
    CoderForces-617B
    HYSBZ-2002弹飞绵羊
    邻接表
    CoderForces-913-C
    CoderForces-913D
    CoderFocers-620C
    CoderForces-375D
    HDU-6119
  • 原文地址:https://www.cnblogs.com/randyzhuwei/p/4058715.html
Copyright © 2011-2022 走看看