C# 关闭一个表单并在返回到另一个表单时执行某些操作
我有一个主窗体和一个存储窗体。 我从不关闭主窗体,只是让保存窗体显示在顶部 当我关闭存储表单时,我希望在返回mainForm时运行一段代码C# 关闭一个表单并在返回到另一个表单时执行某些操作,c#,C#,我有一个主窗体和一个存储窗体。 我从不关闭主窗体,只是让保存窗体显示在顶部 当我关闭存储表单时,我希望在返回mainForm时运行一段代码 实现这一点的最佳方法是什么?在mainForm中,订阅saveForm上的FormClosed事件,将代码放入此事件的事件处理程序中 void saveForm_FormClosed(object sender, FormClosedEventArgs e) { /// code here } 在mainForm中,订阅saveForm上的Form
实现这一点的最佳方法是什么?在mainForm中,订阅saveForm上的FormClosed事件,将代码放入此事件的事件处理程序中
void saveForm_FormClosed(object sender, FormClosedEventArgs e)
{
/// code here
}
在mainForm中,订阅saveForm上的FormClosed事件,将代码放入此事件的事件处理程序中
void saveForm_FormClosed(object sender, FormClosedEventArgs e)
{
/// code here
}
除了@benPearce的回答之外,如果您满足于以模式显示saveForm,那么您可以拨打: 所以在
main表单
中,我假设您有一个保存按钮(我们称之为btnSave
),它会显示保存表单
,对吗?正当因此,双击该保存按钮,VisualStudio将为您创建一个事件处理程序。输入下面的代码
private void btnSave_Click(object sender, EventArgs e)
{
saveForm sf = new SaveForm();
if (sf.ShowDialog() == DialogResult.OK)
{
// do your thing
}
}
当然,您必须确保保存表单正在设置DialogResult。例如,假设您在saveForm
中有一个OK按钮,用来关闭saveForm
。。。在OK按钮的Click事件中,您可以执行以下操作:
private void btnOK_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.OK;
this.Close();
}
除了@benPearce的回答之外,如果您满足于以模式显示saveForm,那么您可以拨打: 所以在
main表单
中,我假设您有一个保存按钮(我们称之为btnSave
),它会显示保存表单
,对吗?正当因此,双击该保存按钮,VisualStudio将为您创建一个事件处理程序。输入下面的代码
private void btnSave_Click(object sender, EventArgs e)
{
saveForm sf = new SaveForm();
if (sf.ShowDialog() == DialogResult.OK)
{
// do your thing
}
}
当然,您必须确保保存表单正在设置DialogResult。例如,假设您在saveForm
中有一个OK按钮,用来关闭saveForm
。。。在OK按钮的Click事件中,您可以执行以下操作:
private void btnOK_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.OK;
this.Close();
}
@卢克。您可以在main表单中执行此操作。在方法内部?哪一个?只是对它的工作原理有点困惑?这真的很有帮助,但我不想让它在单击“保存”按钮时执行代码。关闭存储表单后,我希望它做一些事情。是你提供的代码吗?@Luke。是的,代码完全符合您的要求,但前提是您希望您的存储表单是模态的。如果没有,那么你应该采用@benPearce方法。另外,当你说你不想要一个保存按钮时……那么你到底是如何启动保存表单的呢?目前,我已经从mainForm_load加载了它,但我对此不满意,也不会重新加载表单。我确实用一个按钮打开了存储表单。我的想法是,代码将在初始启动时发生,然后在关闭存储表单时发生,但不使用formload。“我会试试你说的。”卢克。您可以在main表单中执行此操作。在方法内部?哪一个?只是对它的工作原理有点困惑?这真的很有帮助,但我不想让它在单击“保存”按钮时执行代码。关闭存储表单后,我希望它做一些事情。是你提供的代码吗?@Luke。是的,代码完全符合您的要求,但前提是您希望您的存储表单是模态的。如果没有,那么你应该采用@benPearce方法。另外,当你说你不想要一个保存按钮时……那么你到底是如何启动保存表单的呢?目前,我已经从mainForm_load加载了它,但我对此不满意,也不会重新加载表单。我确实用一个按钮打开了存储表单。我的想法是,代码将在初始启动时发生,然后在关闭存储表单时发生,但不使用formload。我会试试你说的。