c#

C#子窗口的模态与非模态设置方法

小樊
144
2024-09-04 16:05:33
栏目: 编程语言

在C#中,子窗口可以是模态(Modal)或非模态(Non-Modal)

  1. 模态子窗口:

模态子窗口会阻止用户与主窗口进行交互,直到子窗口关闭。要创建模态子窗口,请使用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); // 显示模态子窗口
        }
    }
}
  1. 非模态子窗口:

非模态子窗口允许用户在子窗口打开时与主窗口进行交互。要创建非模态子窗口,请使用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对象,该对象表示子窗口的所有者。这样,子窗口将始终位于其所有者窗口的前面。

0
看了该问题的人还看了