在C#中,窗口关闭的事件是FormClosing而不是Closing,因此您需要这样的代码:
private void button1_Click(object sender, EventArgs e)
{
this.FormClosing += new FormClosingEventHandler(Form1_FormClosing)
}
void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
if (MessageBox.Show("Are you sure?","Application",MessageBoxButtons.YesNo,MessageBoxIcon.Information)==DialogResult.No)
{
e.Cancel = true
}
}
希望对您有帮助。
在关闭事件里加入: DialogResult drdr = MessageBox.Show("确定要退出吗?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question)if (dr == DialogResult.OK) { e.Cancel = false} else { e.Cancel = true}最安全的做法是委托,委托就不需要找对象。比如我想再B窗体里面关闭C窗体,他们之间都找不到对象,对象在A里面实例化的,怎么办?委托就要用上了。在B里面写委托主体申明,然后赋予事件主体。
public delegete void close
public static event close close_c
B的按钮事件中加入:
close_c()
C的窗体启动事件中订阅事件:
B.close_c+=()=>{
Enveroment.Exit(0)
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)