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