我正在構建一個兒童學習應用程序,點擊面板上的按鈕,我想在面板的相同位置顯示不同的表單。你可以請幫助任何步行或教程鏈接?如何在一個Windows Form面板的一個Csharp面板中使用多個窗體?
回答
這個問題應該已經發布在Stackoverflow網站而不是在這裏。
但是你可以用這種方法來處理這種情況。
subForm = new SubFormYouWantToLoad();
subForm.TopLevel = false;
subForm.FormBorderStyle = FormBorderStyle.None;
ContainerPanel.Controls.Add(subForm , 0, 1);
subForm .Visible = true;
當您單擊特定按鈕時,可以添加此代碼。 這裏每個子窗體都作爲控件添加到面板。在添加其他子窗體之前,應該從面板的控制列表中刪除子窗體。爲此,最好刪除,關閉並處置第一個。
ContainerPanel.Controls.Remove(activeform);
activeform.Close();
activeform.Dispose();
這是一種沒有MDI的多種形式。謝謝:) – dariol 2013-04-05 21:55:36
你的答案不是一個好的解決方案,是誤導。您不應將頂級控件添加到控件。 – VahidNaderi 2013-09-11 07:08:58
@Vimal Raj子窗體控件不顯示在面板中,除了空白窗口 – 2013-10-03 18:47:12
您可以創建多個窗體作爲用戶控件或從面板繼承的控件。然後有一個面板的父窗體來保存用戶控件。當面板需要更改時,您可以更改容器中的活動用戶控件。
有一個MSDN教程用於創建用戶控件。
http://msdn.microsoft.com/en-us/library/a6h7e207(v=vs.71).aspx
而是形式使用用戶控件和中板加載它們
樣,如果你想顯示的UserControl1
panel1.Controls.Clear();
panel1.Visible = true;
UserControl1 usr1 = new UserControl1();
usr1.Show();
panel1.Controls.Add(usr1);
如果usercontrol2
panel1.Controls.Clear();
panel1.Visible = true;
UserControl1 usr2 = new UserControl2();
usr2.Show();
panel1.Controls.Add(usr2);
我用這個代碼關閉了面板上的窗體,但沒有工作..
private void button12_Click(object sender, EventArgs e)
{
dontShowPANEL();
//ActiveForm.Close();
MainImaginCp kj = new MainImaginCp();
//kj.Visible = false;
kj.panel2.Controls.Clear();
panel1.Visible = true;
EngABCLearning usr1 = new EngABCLearning();
usr1.Show();
kj.panel2.Controls.Add(usr1);
//kj.Focus();
}
我用下面的代碼在面板中顯示窗體。
private void toolStripMenuItem1_LR_ENG_Click(object sender, EventArgs e)
{
//kids.Form2 hj = new kids.Form2();
//hj.Show();
EngABCLearning gh = new EngABCLearning();
//gh.Show();
gh.TopLevel = false;
gh.FormBorderStyle = FormBorderStyle.None;
//Panel2.Controls.Add(subForm, 0, 1);
panel2.Controls.Add(gh);
gh.Visible = true;
}
這是關閉我的主窗體並退出應用程序。
嘗試了這一點我已經加載到一個面板
private void Form1_Load(object sender, EventArgs e)
{
Form2 f1 = new Form2();
f1.TopLevel = false;
f1.AutoScroll = true;
panel1.Controls.Add(f1);
f1.Dock = DockStyle.Left;
f1.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
f1.Show();
//form2
Form3 f2 = new Form3();
f2.TopLevel = false;
f2.AutoScroll = true;
panel1.Controls.Add(f2);
f2.Dock = DockStyle.Left;
f2.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
f2.Show();
}
- 1. 如何在一個窗口中獲取多個面板 - GTK +
- 2. 在一個窗體上處理多個面板
- 3. 如何用windows窗體打印面板
- 4. 如何在同一個aspx頁面中使用多個更新面板
- 5. 如何在R中的一個面板中顯示多個圖?
- 6. 使用多個面板滾動窗格
- 7. 如何在GWT窗體面板中發佈整個頁面
- 8. 另一個面板內的面板
- 9. 如何在另一個面板中顯示面板?
- 10. 如何將面板放置在另一個面板中?
- 11. 在Windows窗體應用程序中覆蓋兩個面板
- 12. 一個更新面板與多個更新面板
- 13. 在一個頁面中的多個滑動面板
- 14. C#使用Graphics在面板內的面板上繪圖。第一個面板比第二個面板更大
- 15. 具有多個重疊面板的Windows窗體設計器
- 16. 背景面板Windows窗體
- 17. 淡出面板 - Windows窗體
- 18. 如何在同一個jframe中管理多個面板?
- 19. 如何在同一個面板中繪製多個橢圓
- 20. 多個域和一個管理面板
- 21. 如何從另一個窗體更新()更新面板?
- 22. 如何在運行期間將一個面板更改爲另一個面板?
- 23. 如何使一個加權面板
- 24. 面板div中的多個面板主體
- 25. 兩個面板在一個JFrame中?
- 26. 如何從當前面板調用另一個extjs面板?
- 27. 打開另一個面板時關閉另一個面板
- 28. 在Windows窗體中旋轉.NET面板
- 29. 在一個多面圖中爲單個面板添加一個geom圖層
- 30. 如何在多個頁面上使用typo3流體模板?
帖子需要直接編碼的幫助應在計算器上公佈的內部兩種形式。這個垂直線用於軟件開發的專業討論。 – 2011-04-08 09:31:38