gpt4 book ai didi

c# - MDI 应用程序中的 "Partially modal"表单

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

我有一个 MDI 应用程序。用户可以打开不同的非模态窗体,例如窗体 A 和窗体 B。在窗体 A 上有一个按钮可以打开另一个窗体(假设窗体 C),窗体 B 也是如此(一个按钮打开窗体 D)。我想要实现的是让 C 阻止 A 和 D 阻止 B。ShowDialog 不起作用,因为它会阻止整个应用程序,所以我尝试禁用表单 A,然后在关闭 C 时设置为 false 的 bool 值循环一段时间(即:while (blocked) Application.DoEvents() ;).在下面的代码行中,我重新启用 A,然后使用从 C 获得的结果。它似乎有效,但如果我从 A 打开 C,然后从 B 打开 D,则 A 会同时被 C 和 D 阻止,而不仅仅是被 D 阻止。有没有办法实现我想要做的事情?

最佳答案

也许像这样模拟你想要的会更好:

  1. 当 A 打开 C 时,将该引用保留在 A 类中(不在某些方法中,但对其他方法可见)
  2. 当表单 A 收到 Activate 事件时,检查 C 是否可见 - 如果是,则将其聚焦。

对于 B-D 也是如此,无论组合如何......

关于c# - MDI 应用程序中的 "Partially modal"表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6059026/

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