前言
以前VB课程的时候开始就认为桌面软件布局是几个form构成的,而切换功能一直都是实例化一个form对象再隐藏原来的form展示新的form,但是生活经验告诉我这并不是一个普遍方式.偶然间终于发现了另一抹曙光.
代码
原理:在主窗口使用panel容器控件和菜单控件,然后根据菜单功能切换由各个form管理的控件至panel中.
private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
var form = new Form4();
ChangeForm(form);
}
void ChangeForm(Form form)
{
form.TopLevel = false;
form.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;//设置窗体为非边框样式
form.Dock = System.Windows.Forms.DockStyle.Fill; //设置样式是否填充整个panel ;
this.panel1.Controls.Clear();
this.panel1.Controls.Add(form);
form.Show(); //窗体运行
}
这里要注意一下默认form是顶级控件,不能使用Controls.Add(form)方法,需要form.TopLevel = false;
来取消form的顶级控件属性才能将form上的控件添加到panel上.