1

在表单中,我有一个按钮,该按钮具有从(通过鼠标单击)父应用程序中获取一些数据的功能。

我有父应用程序句柄的句柄,但即使我试图将它放在顶部,我也无法进行选择,因为表单是模态的。

这里的要求是打开无模式对话框并等待它关闭。否则它会更进一步并执行下面的功能。

另一个选项可以是打开形式作为 modal 并在运行时将其更改为 modaless

但是怎么做呢?:)

4

2 回答 2

3

假设 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();

这将在主窗体上阻塞,直到子窗体关闭。无需挂钩关闭的事件。

于 2012-04-19T12:42:44.383 回答
-1

您的问题没有完全意义,但到目前为止尝试回答 -

您可以使用显示模式对话框

Form1.ShowDialog

如果您需要显示另一个模态对话框,您可以这样做:

Form2.ShowDialog

当前显示模态对话框时,您不能显示非模态对话框。

于 2012-04-19T13:03:12.270 回答