【发布时间】:2010-03-23 08:38:01
【问题描述】:
我有一个对话框 A,我希望它加载第二个对话框 B,该对话框是无模式的,并且始终保持在 A 侧。然后对话框 A 可能会启动一个模态对话框 C。但是当 C 存在时,我希望 B 可用。我会在 C++ 应用程序中使用 A 中的预翻译消息解决此问题,但 C# 中的方法是什么。
【问题讨论】:
标签: c# windows modal-dialog modeless dialog
我有一个对话框 A,我希望它加载第二个对话框 B,该对话框是无模式的,并且始终保持在 A 侧。然后对话框 A 可能会启动一个模态对话框 C。但是当 C 存在时,我希望 B 可用。我会在 C++ 应用程序中使用 A 中的预翻译消息解决此问题,但 C# 中的方法是什么。
【问题讨论】:
标签: c# windows modal-dialog modeless dialog
当您启动对话框 C 时,使用 yourFormVariable.Show() 而不是 yourFormVariable.ShowDialog() 启动它。
Form form1 = new Form();
Form form2 = new Form();
form1.Show();
form2.Show();
这将允许用户激活和使用两种表单,而在以下代码中:
Form form1 = new Form();
Form form2 = new Form();
form1.Show();
form2.ShowDialog();
用户必须关闭 form2 才能再次继续使用 form1。
请注意,没有模式对话框之类的东西可以让以前的表单可用 - 根据定义,modal dialog 是用户在继续之前必须与之交互并关闭的对话框。
【讨论】: