请教C#如何添加关闭窗体事件

请教C#如何添加关闭窗体事件,第1张

恩,对窗体关闭事件进行拦截,如下:

this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.Main_FormClosed)

然后在 Main_FormClosed 方法体内 书写相应的的逻辑代码。

窗体会在关闭时,调用该方法体内的逻辑

在C#中,窗体右上角关闭事件是指当用户单击窗体右上角的关闭按钮时触发的事件。该事件被称为“FormClosing”事件,它是System.Windows.Forms.Form类的一个成员。它需要一个参数,即System.Windows.Forms.FormClosingEventArgs类型的对象,该对象可以提供有关关闭 *** 作的信息。为了处理FormClosing事件,可以添加一个处理程序,该处理程序将在用户单击窗体右上角的关闭按钮时被调用。处理程序可以执行任何 *** 作,例如提示用户是否要保存更改,或者取消关闭 *** 作,或者允许关闭 *** 作继续执行。

你是不是要在用户点击关闭时 提示用户是否关闭程序??

这样的话 没必要再加一个Form2啦

直接为Form1添加一个Form1_FormClosing事件在事件中写入以下代码

private void Form1_FormClosing(object sender, FormClosingEventArgs e)

{

if (DialogResult.OK == MessageBox.Show("你确定要关闭应用程序吗?", "关闭提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question))

{

this.FormClosing -= new FormClosingEventHandler(this.Form1_FormClosing)//为保证Application.Exit()时不再d出提示,所以将FormClosing事件取消

Application.Exit()//退出整个应用程序

}

else

{

e.Cancel = true //取消关闭事件

}

}

如果你确定想这样做 也可以 在Form1代码:

private void Form1_FormClosing(object sender, FormClosingEventArgs e)

{

e.Cancel = true//取消关闭事件

Form2 f2 = new Form2()

if (DialogResult.OK == f2.ShowDialog())//让Form2以模式窗口显示,就是说Form2显示时 Form1无法成为焦点

{

this.FormClosing -= new FormClosingEventHandler(this.Form1_FormClosing)//为保证Application.Exit()时不再d出提示,所以将FormClosing事件取消

Application.Exit()

}

}

Form2中两个按钮事件代码:

private void btnOK_Click(object sender, EventArgs e)

{

DialogResult = DialogResult.OK

}

private void btnCancel_Click(object sender, EventArgs e)

{

DialogResult = DialogResult.Cancel

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11809090.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-18
下一篇2023-05-18

发表评论

登录后才能评论

评论列表(0条)

    保存