阅读量:0
在C#中,子窗口可以是模态(Modal)或非模态(Non-Modal)
- 模态子窗口:
模态子窗口会阻止用户与主窗口进行交互,直到子窗口关闭。要创建模态子窗口,请使用ShowDialog()
方法。例如:
using System; using System.Windows.Forms; namespace ModalExample { public partial class MainForm : Form { public MainForm() { InitializeComponent(); } private void buttonOpenChild_Click(object sender, EventArgs e) { ChildForm childForm = new ChildForm(); childForm.ShowDialog(this); // 显示模态子窗口 } } }
- 非模态子窗口:
非模态子窗口允许用户在子窗口打开时与主窗口进行交互。要创建非模态子窗口,请使用Show()
方法。例如:
using System; using System.Windows.Forms; namespace NonModalExample { public partial class MainForm : Form { public MainForm() { InitializeComponent(); } private void buttonOpenChild_Click(object sender, EventArgs e) { ChildForm childForm = new ChildForm(); childForm.Show(this); // 显示非模态子窗口 } } }
这两种方法都可以在子窗口的构造函数中传递一个IWin32Window
对象,该对象表示子窗口的所有者。这样,子窗口将始终位于其所有者窗口的前面。