【发布时间】:2016-05-10 13:08:47
【问题描述】:
我在 Form1 关闭事件中有此代码:
private void MemberForm_FormClosing(object sender, FormClosingEventArgs e)
{
DialogResult del = MessageBox.Show("Save changes?", "Save", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);
if (del == DialogResult.Yes)
{
// do something
}
if (del == DialogResult.No)
{
// do something
}
if (del == DialogResult.Cancel)
{
e.Cancel = true;
}
...
}
如果我从 form1 中的按钮打开 form2,在 form2 关闭事件中它会再次显示对话框结果。我希望对话框结果仅在 form1 中显示。 为什么会这样?
所以我的新问题是:我可以用保存按钮做同样的事情吗?防止第二次写代码? 示例
base.OnClosing(e);
if (e.CloseReason == CloseReason.UserClosing)
{
DialogResult del = MessageBox.Show("Save change?", "Save", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);
if (del == DialogResult.Yes)
{
??????????????
}
if (del == DialogResult.No)
{
Form3 ss = new Form2();
Hide();
ss.ShowDialog();
}
if (del == DialogResult.Cancel)
{
e.Cancel = true;
}
public bool saveToolStripMenuItemClicked { get; set; }
private void saveToolStripMenuItem_Click(object sender, EventArgs e)
{
Form3 ss = new Form3();
Hide();
ss.ShowDialog();
}
现在我想当 dialogresult (Yes) 对 saveToolStripMenuItem_Click 做同样的事情
【问题讨论】:
-
form2 是否继承自 form1?你是如何创建form2的?您可以将此处理程序添加到任何地方的 form2 关闭事件吗?
-
Form2 ss = new Form2();隐藏(); ss.ShowDialog();
-
那是他显示form2的代码
标签: c#