我是新的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它编译,但是当他们打开更多的情况下,该进程的内存每一次上升。这显然不是'好技术',所以我正在学习如何变得更聪明:) –