C#winform实现通过点击Button来切换不同的界面
|
C#winform实现通过点击Button来切换不同的界面
实现目标:点击左边菜单栏里面的Button实现右边区域切换不同界面。
步骤:
1.界面布局
由于实现目标需要用到容器控件,所以需要选择合适的容器控件来进行左右区域布局。常用的容器控件有:Panel,FlowLayoutPanel,GroupBox,TabControl,SplitContainer,TableLayoutPanel,ToolStripContainer。
此实现目标选择 SplitContainer 控件来进行界面布局。
SplitContainer
SplitContainer控件是一个用于将页面拆分成两个大小可调整的区域的容器控件,中间有一个拆分条,通过拖动拆分条来调整左右或上下区域的大小。
属性:
- FixedPanel:指定在调整控件大小时,某个面板的宽度或高度保持不变。
- Dock:控件的停靠方式,默认值为Fill。
- IsSplitterFixed:指定拆分条是否固定,如果为true,则拆分条不能被拖动。
- Orientation:指定拆分器是水平的还是垂直的,可选值为Horizontal或Vertical。
- Panel1、Panel2:获取SplitContainer控件的两个面板。
- SplitterDistance:指定拆分条与左边或上边的距离,单位为像素。
- SplitterWidth:指定拆分条的宽度或高度,单位为像素。
- SplitterIncrement:指定拆分条移动时的增量,单位为像素。
先创建主界面命名为Form_main,然后在工具栏中选择SplitContainer控件拖入到主界面中,调整好SplitContainer左右区域大小后再从工具栏中向左边区域拖入多个Buttona按钮,右边区域留着放界面
界面效果
主体界面完成后再分别创建子界面。在解决方案中新增多个不同的窗口,将子窗口的大小设置成与右边区域大小一致并设置子窗口的FormBorderStyle属性为None,命名好不同窗口窗口名称方便后面调用。
界面效果(其他界面类似)
至此界面布局完成,这里在子窗口上添加了一个Lable控件用于区分不同的界面。
2.功能实现
主体界面和子界面完成接下来实现具体功能。
思路:
1.点击按钮创建对应的子窗口对象,并显示子窗口
2.关闭其他按钮创建的子窗口
代码展示:
1.首先需要实现其他界面关闭方法。- 1 /// <summary>
- 2 /// 关闭其他窗口
- 3 /// </summary>
- 4 private void CloseOtherForms()
- 5 {
- 6 // 获取当前打开的所有窗体
- 7 Form[] openForms = Application.OpenForms.Cast<Form>().ToArray();
- 8 foreach (Form form in openForms)
- 9 {
- 10 // 关闭除主窗体以外的其他窗体
- 11 if (form.Name != "Form_main")
- 12 {
- 13 form.Close();
- 14 }
- 15 //MessageBox.Show(form.Name);
- 16 }
- 17 }
复制代码
2.实现子窗体加载方法来加载不同的界面,通过form参数加载指定的窗口 - /// <summary>
- /// 子窗体加载
- /// </summary>
- /// <param name="form">子窗口对象</param>
- private void openPage(Form form)
- {
- CloseOtherForms();
- form.Dock = System.Windows.Forms.DockStyle.Fill;//设置Dock为Fill使子窗体占满splitContainer1.Panel2
- form.TopLevel = false;////设置为非顶级控件,否则无法添加
- form.Show();
- splitContainer1.Panel2.Controls.Clear();//清除splitContainer1.Panel2内容
- splitContainer1.Panel2.Controls.Add(form);//将frmHome添加到splitContainer1.Panel2中
- }
复制代码
3.实现对应按钮点击事件(其他按钮类似)- /// <summary>
- /// 员工管理按钮事件
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void btn_employeeMan_Click(object sender, EventArgs e)
- {
- Form_EmployeeMan form = new Form_EmployeeMan();
- openPage(form);
- }
复制代码
最终效果:
来源:https://www.cnblogs.com/xmit/p/18179640
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作! |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|
|
|
发表于 2024-5-8 16:03:53
举报
回复
分享
|
|
|
|