C#实现在同一窗口内显示多个其它窗口/另一个窗口

一、以对话框的方式显示另一窗口。
在form1内对过按钮点击或其它事件添加以下代码。
form2 fm2 = new form2();
fm2.showdialog();
特点:当fm2打开后form1无法执行其它操作。只有当fm2关闭后才能继续。
关闭窗口为this.close();

二、在form1内打开form2,form2作为form1的一部份进行显示。


       private void Form1_Load(object sender, EventArgs e)
       {
           var frm
= new Form2();
           frm.TopLevel
= false;
           
this.panel1.Controls.Add(frm);
           frm.Show();
       }

Demo



三、如果有三个窗体呢,form1,form2,form3,当在form2单击时,让form3,在form1的面板里显示行吗?代码该怎么写?

在Form2中:
private void button1_Click(object sender, EventArgs e)
{
var frm1 = new Form1();
frm1.Show();
frm1.ShowForm(new Form3());
}
在Form1中:
internal void ShowForm(Form frm)
{
frm.TopLevel = false;
this.panel1.Controls.Add(frm);
frm.Show();
}

当然,什么时候选择打开Form1是你自已决定的,不一定在Form2的button1_Click中


你可能感兴趣的:(c,from,打开另一窗口)