我是新的C#和已經創建了一個基本程序。標籤式菜單 - 每個標籤作爲一個單獨的CS文件
我的「主菜單」被設定與沿前7個標籤。 我已成立CASE所以當用戶選擇的標籤它增加了該特定子菜單(frmXXXmenu)與對照。
的問題是
- 這是正確的
現在每個窗體將打開每一次點擊,因此我一直的形式生成實例(我可以看到我的進程內存增加!)
private void tabmain_SelectedIndexChanged(object sender, EventArgs e) { string curtab = tabmain.SelectedTab.Name.ToString(); switch (tabmain.SelectedTab.Name) { case "tabcollect": frmcollectmenu frmcollectmenu = new frmcollectmenu(); frmcollectmenu.TopLevel = false; tabcollect.Controls.Add(frmcollectmenu); frmcollectmenu.Dock = DockStyle.Fill; frmcollectmenu.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; frmcollectmenu.Show(); break; case "tabpack": frmpackmenu frmpackmenu = new frmpackmenu(); frmpackmenu.TopLevel = false; tabpack.Controls.Add(frmpackmenu); frmpackmenu.Dock = DockStyle.Fill; frmpackmenu.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; frmpackmenu.Show(); break; } }
等7個選項卡。
上午我在正確的方向,如果是這樣,我怎麼解決這個實例的情況呢?
我想無論是處置時不再是活動..或者當一個已經打開有點不創建一個新的實例?
第二問題
之一形式需要約2秒至打開(它是示出基於SQL的圖表)。我怎樣才能加載這個頁面在標籤中,當我打開frmmain()來啓動程序,然後當我打開它將被加載的選項卡? 我試圖把
frmcollectmenu frmcollectmenu = new frmcollectmenu();
frmcollectmenu.TopLevel = false;
tabcollect.Controls.Add(frmcollectmenu);
frmcollectmenu.Dock = DockStyle.Fill;
frmcollectmenu.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
frmcollectmenu.visible = false;
frmcollectmenu.Show();
(添加的可見部分),然後我做到了再次可見選擇的選項卡時,但似乎它仍然需要幾秒鐘,並沒有真正工作的權利。
的啓動時間?它是否不像你預期的那樣行事,是不是編譯? –
@YvetteColomb它編譯,但是當他們打開更多的情況下,該進程的內存每一次上升。這顯然不是'好技術',所以我正在學習如何變得更聰明:) –