我去,那你调用close的时候做一些操作不就行了?默认就是点击X,用close方法是你代码关闭的。。。
放个全局变量,默认是0,调用.close之前置为1.然后closing中判断。
在FormClosing事件中FormClosingEventArgs e中包含了关闭原因的,e.ClosingReason这个进行判断吧。如果都调用的Closing函数那就没法了
放个全局变量,默认是0,调用.close之前置为1.然后closing中判断。
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消息,就靠这样区分开