0
我需要一些帮助子窗体控件:使用主窗体和子窗体的面板控件
我正在开发一个C#窗体窗体。表格分为两个面板。左侧面板包含多个按钮,右侧面板用于显示不同的形式。
因此,当您单击左侧面板上的按钮时,相应的窗体将显示在右侧面板上。 例如Button1:ShowForm1,Button2:ShowForm2,Button3:ShowForm3
我能够实现上述情况。但是,我不知道如何实现以下情况: 单击ShowForm3以显示Form3,然后在Form3中有一个“ShowForm4”按钮。如果按钮被点击,那么form3应该被关闭并且Form4应该被显示在面板中。 我想让Form4在面板中显示,而不仅仅是一个弹出窗体(即Form4.show())。 我该怎么做?谢谢。
我的编码如下:
private void MainForm_Load(object sender, EventArgs e)
{
//Master Form
this.btn_show1.Click += new EventHandler(btn_show_Click);
this.btn_show2.Click += new EventHandler(btn_show_Click);
this.btn_show3.Click += new EventHandler(btn_show_Click);
}
void btn_show_Click(object sender, EventArgs e)
{
this.pnl_ShowForms.Controls.Clear();
int tag = Convert.ToInt32((sender as Button).Tag);
switch (tag)
{
case 1:
Form1 frm1 = new Form1();
frm1.FormBorderStyle = FormBorderStyle.None;
frm1.Dock = DockStyle.Fill;
frm1.WindowState = FormWindowState.Maximized;
frm1.TopLevel = false;
this.pnl_ShowForms.Controls.Add(frm1);
frm1.Show();
break;
case 2:
Form2 frm2 = new Form2();
frm2.FormBorderStyle = FormBorderStyle.None;
frm2.Dock = DockStyle.Bottom;
frm2.WindowState = FormWindowState.Maximized;
frm2.TopLevel = false;
this.pnl_ShowForms.Controls.Add(frm2);
frm2.Show();
break;
case 3:
Form3 frm3 = new Form3();
frm3.FormBorderStyle = FormBorderStyle.None;
frm3.Dock = DockStyle.Fill;
frm3.WindowState = FormWindowState.Maximized;
frm3.TopLevel = false;
this.pnl_ShowForms.Controls.Add(frm3);
frm3.Show();
break;
}
谢谢。它工作完美。 – Alvin