在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对象,该对象表示子窗口的所有者。这样,子窗口将始终位于其所有者窗口的前面。