首页 > 代码库 > 自动关闭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