我在单击按钮时有一些代码会打开弹出窗口,而在单击同一按钮时有一些代码我只想在关闭弹出窗口后运行。
这里是一个例子。
private void SomeButton_Click(object sender, RibbonControlEventArgs e)
{
var assignCategory = new AssignCategory();
assignCategory.Show();
/// Some code to run only after assignCategory pop up is closed.
}
我无法在/// some code
上运行private void AssignCategory_FormClosed(object sender, FormClosedEventArgs e)
,因为只有在单击SomeButton
的情况下,代码才会运行。
谢谢。
答案 0 :(得分:3)
一旦显示了子窗体,方法Form.Show()
将返回,直到子窗体关闭后才暂停执行。或者,您可以使用Form.ShowDialog()
暂停执行,直到表单关闭。
您需要订阅子表单的Form.Closed
事件,如果要异步运行两个Form,则应对其触发操作。
要仅在按下“确定”按钮后运行代码,您必须在子窗体中声明一个EventHandler
,如下所示:
public event EventHandler OnOkClick;
然后在按钮的底部或特定点触发事件:
OnOkClick();
然后在您的主窗体构造器中订阅该事件