c#扁平化设计一个panel嵌入多个窗体,实现切换

主页面如下:

中间白色区域添加了一个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);
        }

这样的话,我们就实现了这个功能。

猜你喜欢

转载自blog.csdn.net/Stybill_LV_/article/details/108467940