您好,欢迎来到华拓科技网。
搜索
您的当前位置:首页C#控制台应用程序如何添加窗口关闭事件?

C#控制台应用程序如何添加窗口关闭事件?

来源:华拓科技网

很多小伙伴问,有没有办法像WinForm一样,对窗体关闭退出事件进行控制呢?默认是没有的,我们可以自己写。按照下面的步骤来操作吧:

1、在【Program.cs】文件的Program类中写如下代码。 添加一个委托HandlerAppClose,就是把函数的指针传递给系统API函数SetConsoleCtrlHandler。

代码:

        #region 激活关闭窗口事件
        public delegate bool ControlCtrlDelegate(int CtrlType);
        [DllImport("kernel32.dll")]
        private static extern bool SetConsoleCtrlHandler(ControlCtrlDelegate HandlerAppClose, bool Add);
        private static ControlCtrlDelegate cancelHandler = new ControlCtrlDelegate(HandlerAppClose);

        /// <summary>
        /// 关闭窗口时的事件
        /// </summary>
        /// <param name="CtrlType"></param>
        /// <returns></returns>
        static bool HandlerAppClose(int CtrlType)
        {
            Console.WriteLine("关闭窗口事件被激活");
            Console.WriteLine("do something...");
            return false;
        }

        #endregion

2、然后在Program类的Main方法中去注册窗口关闭事件。

代码:

//注册窗口关闭事件
bool bRet = SetConsoleCtrlHandler(cancelHandler, true);

3、效果如下,当点击【x】关闭窗口时,就会触发窗口关闭事件了。

会进入到这个事件里面:

版权声明:本文为原创文章,版权归 [西瓜程序猿] 所有,转载请注明出处,有任何疑问请私信咨询。

原文链接:

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo6.cn 版权所有 赣ICP备2024042791号-9

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务