【发布时间】:2014-06-17 02:12:56
【问题描述】:
我是学校的初级程序员,我们必须做一个大项目,我的一个表单关闭有问题,特别是自己制作的表单“关闭事件”。
private void sluitenToolStripMenuItem_Click(object sender, EventArgs e)
{
if (MessageBox.Show("Het programma wordt hiermee gesloten.\nBent u zeker dat u wilt sluiten en uitloggen?",
"Waarschuwing , u staat op het moment het programma te sluiten",MessageBoxButtons.YesNo,
MessageBoxIcon.Exclamation) == DialogResult.Yes)
{
Application.Exit();
}
}
private void window_Closing(object sender, FormClosingEventArgs e)
{
if(MessageBox.Show("Bent u zeker dat u wilt uitloggen?","Waarschuwing , u staat op het moment uit te loggen",
MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) == DialogResult.Yes)
{
loginForm.Show();
}
else
{
e.Cancel = true;
}
现在我的问题是当我使用 sluitenToolStripMenuItem_Click 并按下是按钮时,它将关闭我的应用程序,这将触发 window_Closing 事件。
但我只希望 window_Closing 事件在我的用户点击右上角的大红色 X 时发生,而不是在用户点击我的工具条项目时发生。
提前感谢
另外,如果有人对制作好的 GUI 有任何提示,那就太好了;)
(我来自比利时,很抱歉我的代码中的荷兰语)
【问题讨论】:
-
这是执行此操作的标准方法 - 您的 eventargs 中的
CloseReason.UserClosing表示您已单击[X]或按下Alt+F4。 -
安德鲁,如果我的用户在我的工具箱中按下我的关闭功能,这仍然是我的用户点击某些东西,所以我的用户将是我的事件仍然会发生的原因。我喜欢的是 private void window_Closing(object sender, RedcrossEvent) 所以我可以更改 Red X 事件,而不是每次尝试关闭我的表单
-
为此,您可以在 FormClosing 事件中检查发件人
标签: c# messagebox formclosing