gpt4 book ai didi

c# - 等待 MDI 子进程关闭,类似于 ShowDialog()

转载 作者:太空宇宙 更新时间:2023-11-03 22:20:58 24 4
gpt4 key购买 nike

我有一个 MDI 应用程序,我想在其中使用模态对话框...是的,我知道这有点违反 MDI 的原则...无论如何,我的主窗口更像是一个“工作区”然后是其他任何东西。

回到主题,如何等待 MDI-Child 关闭?一些示例代码:

  public void DoSomething() {
String searchterm = this.TextBox1.Text;
MyItem result = MySearchForm.GetItem(searchterm);

if(MyItem != MyItem.Empty) {
// do something
}
}

MySearchForm 是主窗口的MDI-Child,所以我不能使用ShowDialog(),但我还是想用阻塞的方法等待窗口关闭并返回结果。我考虑过在另一个线程上调用它并等待那个线程退出,但这也不适用于 MDI。

有人有想法吗?

最佳答案

在 MDI 应用程序中使用对话框是很正常的,它不违反 MDI 约定。只是不要让它成为 MDI 子窗口。这很糟糕,因为你不能让它成为模态。如果你让它成为非模态的,那么当用户最小化窗口时就会发生令人困惑的事情。

只需使用 ShowDialog(owner) 或 Show(owner) 方法(分别为模态和非模态)并将 MDI 父级作为所有者传递。该对话框将始终位于子窗口的顶部。您通常需要 StartPosition = Manual 并设置 Location 以便您可以确保它在父框架内的适当位置启动。

关于c# - 等待 MDI 子进程关闭,类似于 ShowDialog(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3131618/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com