主页面如下:
中间白色区域添加了一个panel控件,完全覆盖白色区域;左侧每个button都会对应一个窗口,并嵌入到panel;第一个button点击之后,会把第一个窗口显示在panel上,其他button对应的窗口将被隐藏,不显示,这样就实现了5个按钮对应页面的切换。
创建一个类:
private void Control_Add(Form form)
{
panel_background.Controls.Clear(); //移除所有控件
form.TopLevel = false; //设置为非顶级窗体
form.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; //设置窗体为非边框样式
form.Dock = System.Windows.Forms.DockStyle.Fill; //设置样式是否填充整个panel
panel_background.Controls.Add(form); //添加窗体
form.Show(); //窗体运行
}
这个类的作用是,事先删除panel上所有的控件,修改待嵌入窗口的样式,然后往panel添加或者说是嵌入窗体,把内容展示在panel上,最后的show负责展示方法的调用。
处理每个button的点击事件:
private void find_click(object sender, EventArgs e)
{
//自定义函数加载窗体 CleanRecycle
Form_Find find = new Form_Find();
Control_Add(find);
}
private void console_click(object sender, EventArgs e)
{
Form_console console = new Form_console();
Control_Add(console);
}
private void community_click(object sender, EventArgs e)
{
Form_community community = new Form_community();
Control_Add(community);
}
private void consult_click(object sender, EventArgs e)
{
Form_consult consult = new Form_consult();
Control_Add(consult);
}
private void set_click(object sender, EventArgs e)
{
Form_set set = new Form_set();
Control_Add(set);
}
这样的话,我们就实现了这个功能。