首页 新闻 会员 周边 捐助

winform 窗口关闭事件 formclosing。

0
[待解决问题]

怎么区别是用户点击(X)标志关闭,还是 用.close()方法关闭?谢谢大家回答。

acguitar的主页 acguitar | 菜鸟二级 | 园豆:202
提问于:2015-10-10 00:37
< >
分享
所有回答(5)
0

我去,那你调用close的时候做一些操作不就行了?默认就是点击X,用close方法是你代码关闭的。。。

顾晓北 | 园豆:10898 (专家六级) | 2015-10-10 08:31
0

放个全局变量,默认是0,调用.close之前置为1.然后closing中判断。

Peter.Xu | 园豆:13 (初学一级) | 2015-10-10 10:15
0

在FormClosing事件中FormClosingEventArgs e中包含了关闭原因的,e.ClosingReason这个进行判断吧。如果都调用的Closing函数那就没法了

小书丶 | 园豆:154 (初学一级) | 2015-10-10 16:52
0

放个全局变量,默认是0,调用.close之前置为1.然后closing中判断。

simadi | 园豆:134 (初学一级) | 2015-10-15 16:16
0
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        protected override void WndProc(ref Message m)
        {
            var WM_SYSCOMMAND = 0X112;
            var SC_CLOSE = 0XF060;
            if (m.Msg == WM_SYSCOMMAND && m.WParam==(IntPtr)SC_CLOSE)
            {
                MessageBox.Show("X被按下了");                
                return;
            }
            base.WndProc(ref m);            
        }
    }

在窗口函数里判断,如上所述!调用.Close方法,不会受到SC_COMMAND消息,就靠这样区分开

赛提斯特 | 园豆:204 (菜鸟二级) | 2015-10-19 21:13
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册