在表单中,我有一个按钮,该按钮具有从(通过鼠标单击)父应用程序中获取一些数据的功能。
我有父应用程序句柄的句柄,但即使我试图将它放在顶部,我也无法进行选择,因为表单是模态的。
这里的要求是打开无模式对话框并等待它关闭。否则它会更进一步并执行下面的功能。
另一个选项可以是打开形式作为 modal 并在运行时将其更改为 modaless。
但是怎么做呢?:)
假设 WinForms... 当你创建对话框时,钩入它的FormClosed
事件。当它关闭时,此事件将触发并且您的原始表单将被通知(假设事件处理程序是原始表单)。
就像是:
class MainForm : Form
{
private ChildForm _childForm;
public void ShowChildForm()
{
_childForm = new ChildForm();
_childForm.FormClosed += (s, e) => MessageBox.Show("Child was closed.");
_childForm.Show();
}
}
也就是说,如果您需要等到它关闭,那么这听起来很像模态对话框:
_childForm.ShowDialog();
这将在主窗体上阻塞,直到子窗体关闭。无需挂钩关闭的事件。
您的问题没有完全意义,但到目前为止尝试回答 -
您可以使用显示模式对话框
Form1.ShowDialog
如果您需要显示另一个模态对话框,您可以这样做:
Form2.ShowDialog
当前显示模态对话框时,您不能显示非模态对话框。