1.新建winform项目。

2.添加工具splitContainer

3.在panel1中添加listview,并动态加载菜单

你可以设置splitContainer的SplitterDistance大小来控制panel1的大小,调整你觉得合适的左菜单栏大小。接下来就是为listview添加菜单绑定。(listview的view属性一定要设置成Details,MultiSelect一定低要设置成false,FullRowSelect设置为true)

在form的load事件里边添加如下代码:

 private void Form1_Load(object sender, EventArgs e){ImageList image = new ImageList();image.ImageSize = new Size(1, 35);//设置每次点击view时以图片的形式ColumnHeader ch = new ColumnHeader();ch.Text = "菜单";ch.Width = splitContainer1.Panel1.Width;ch.TextAlign = HorizontalAlignment.Center;listView1.Columns.Add(ch);//设置listview的列名,没啥用处listView1.SmallImageList = image;//设置每个view的显示形式LoadList();//加载一级栏目listView1.Width = ch.Width;//设置每个view的宽度都一致listView1.Items[0].BackColor = Color.LightGray;//设置主页的选中后的颜色//启动首先展示主页splitContainer1.Panel2.Controls.Clear();//每次执行时清空panel2主页 主页 = new 主页();主页.Parent = splitContainer1.Panel2;主页.Dock = DockStyle.Fill;//设置用户控件充满panel2主页.Show();}/// <summary>/// 一级菜单/// </summary>private void LoadList(){listView1.Items.Clear();//清空菜单//添加菜单ListViewItem 主页 = new ListViewItem("     主页");ListViewItem 菜单一 = new ListViewItem("     菜单一");ListViewItem 菜单二 = new ListViewItem("     菜单二");ListViewItem 菜单三 = new ListViewItem("     菜单三");ListViewItem 重启 = new ListViewItem("     重启");listView1.Items.Add(主页);listView1.Items.Add(菜单一);listView1.Items.Add(菜单二);listView1.Items.Add(菜单三);listView1.Items.Add(重启);}/// <summary>/// 二级菜单/// </summary>private void ChildList(){listView1.Items.Clear();//清空菜单//添加菜单ListViewItem 二级菜单一 = new ListViewItem("     二级菜单一");ListViewItem 二级菜单二 = new ListViewItem("     二级菜单二");ListViewItem 返回 = new ListViewItem("     返回");listView1.Items.Add(二级菜单一);listView1.Items.Add(二级菜单二);listView1.Items.Add(返回);}/// <summary>/// listview的鼠标单击事件/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void listView1_MouseClick(object sender, MouseEventArgs e){foreach (ListViewItem item in listView1.Items){item.BackColor = Color.WhiteSmoke;//遍历每个菜单栏的颜色}if (e.Button == MouseButtons.Left){if (listView1.SelectedItems.Count > 0){listView1.Items[listView1.FocusedItem.Index].BackColor = Color.LightGray;//设置选中菜单栏的颜色string choose = listView1.Items[listView1.FocusedItem.Index].Text;//选中菜单栏的文本ChangePlanel(choose.Trim());//根据文本名称进行相应的展示}}}/// <summary>/// 根据文本名称进行相应的展示/// </summary>/// <param name="name"></param>private void ChangePlanel(string name){switch (name){case "主页":splitContainer1.Panel2.Controls.Clear();主页 zhuye = new 主页();zhuye.Parent = splitContainer1.Panel2;zhuye.Dock = DockStyle.Fill;zhuye.Show();break;case "菜单一":splitContainer1.Panel2.Controls.Clear();主菜单1 zhu1 = new 主菜单1();zhu1.Parent = splitContainer1.Panel2;zhu1.Dock = DockStyle.Fill;zhu1.Show();break;case "菜单二":ChildList();break;case "菜单三":splitContainer1.Panel2.Controls.Clear();主菜单3 zhu3 = new 主菜单3();zhu3.Parent = splitContainer1.Panel2;zhu3.Dock = DockStyle.Fill;zhu3.Show();break;case "二级菜单一":splitContainer1.Panel2.Controls.Clear();二级菜单1 er1 = new 二级菜单1();er1.Parent = splitContainer1.Panel2;er1.Dock = DockStyle.Fill;er1.Show();break;case "二级菜单二":splitContainer1.Panel2.Controls.Clear();二级菜单2 er2 = new 二级菜单2();er2.Parent = splitContainer1.Panel2;er2.Dock = DockStyle.Fill;er2.Show();break;case "返回":LoadList();break;case "重启":try{Application.Restart();}catch (Exception){System.Environment.Exit(0);}break;}}

我好多控件的名称命名都是中文,只是为了大家方便看,自己写时千万不要这样啊!!!

以下就是效果图

项目源代码下载地址:https://sizeinqi.lanzoui.com/i9x575e

Winform如何进行左边菜单栏,右边内容的设计相关推荐

  1. java中 菜单的触发事件_javaweb ajax+div实现左边菜单右边内容时点击菜单应该触发事件但是右边没反应...

    这样写点击左边菜单时无论怎么点击,叫content那个div都没有内容都不会更新,我猜是不是css的问题 这是代码,请问在此基础上要怎么写才能实现左边菜单右边内容呢 JSP Page 22222333 ...

  2. Vue左边与右边内容相关联

    通过:class把左边和右边的内容关联起来 <template><div><!-- 主体 --><div class="con">& ...

  3. html中点击左边菜单右边内容切换

    左边菜单,点击左边右边内容改变 作为新手, 拿到真的很棘手. 很多人想到的是用iframe, 其实我的第一感也是, 但是好像iframe正在被淘汰,  所以一直在寻找新方法.. 当然, 我还是先把if ...

  4. C#上位机与单片机的完美结合(内附有用户登录,注册,截图,温度采集,历史数据展示,左边菜单右边内容展示的主界面)

    基于C#的用户登录,注册界面,头像截屏,左侧菜单右边显示内容的主界面,与单片机结合的温度检测,历史数据分析,完美与SQLServer结合 1用户登录界面 2注册界面 3用户头像拍摄截取 4灯光展示 5 ...

  5. c语言 一个数组奇数左边 偶数右边,C语言设计实验报告(第七次)

    姓名:龚政 实验地点:寝室 实验时间:2020.6.1 实验项目:8.3.1指针基础及指针运算:8.3.2数据交换:8.3.3字符串反转及字符串连接:8.3.4数组元素奇数偶数排列 实验目的与要求 加 ...

  6. 基于Ajax+div的“左边菜单、右边内容”页面效果实现

    效果演示: ①默认页面(index.jsp): ②:点击左侧 用户管理 标签下的 用户列表 选项后,右边默认页面内容更新为用户列表页(userList.jsp)的内容 : ③:同理,点击 产品管理.订 ...

  7. 后台系统页面左边菜单按钮和右边内容的处理,后台系统页面出现双滚动

    后台管理系统的左边菜单和右边内容,在滚动右边内容的时候左边的按钮如何固定 pc端后台系统出现页面双滚动,该如何处理 个人bug记录,表达不好,望见谅 1. 后台管理系统的左边菜单和右边内容,在滚动右边 ...

  8. flex布局左边固定,右边自适应,右边内容超出会影响布局

    左侧宽度固定,右侧自适应 .left-div{width: 200px; }.right-div{flex: 1; } 右边内容超出的话,就会导致左边固定的宽度大小不起重要了,这时只需要加上min-w ...

  9. 左边菜单,点击左边右边内容改变

    作为新手, 拿到真的很棘手. 很多人想到的是用iframe, 其实我的第一感也是, 但是好像iframe正在被淘汰,  所以一直在寻找新方法.. 当然, 我还是先把iframe方法贴出来, 这个方法是 ...

最新文章

  1. docker中使用systemctl启动服务
  2. Spring Cloud Alibaba 2021.0.1.0 发布:版本号再也不迷糊了
  3. Nginx深入了解-基础(一)
  4. 【Android 应用开发】Android开发技巧--Application, ListView排列,格式化浮点数,string.xml占位符,动态引用图片
  5. 金融专有云数据安全实践
  6. 行为驱动开发BDD概要
  7. mybatis学习(27):获取自增id方式一(在mapper中insert配置节点的属性)
  8. 搞IT也不能不懂“五险一金”啊
  9. LCS算法 文本对比的实现
  10. navicat 1146错误
  11. java中dao_java中的Dao类是什么意思?
  12. tc2 怎么编写c语言6,WinTC.EXE:TC for Windows (TC2 C语言编译器)
  13. 千千静听V5.6 Beta3 美化增强版
  14. IMDb站点起诉加州限制演员年龄信息披露法案的有效性
  15. Graham扫描法求解二维凸包问题
  16. 易语言数据库读取相关数据
  17. 基于vue商品图片轮播和放大镜的方案
  18. 睡觉少对孩子影响很大肚子变胖记忆受损
  19. 兄dei,帮我开一下门吧~
  20. 基于STM32F767的FreeRTOS的移植

热门文章

  1. NOI 2020 游记
  2. 龙蜥社区助力中国联通完成核心业务CentOS试点替换
  3. 水晶球制作–关于质感表现与光影的细节
  4. java实现两张png图片合并(重叠)成一张图片
  5. GSM, SIM GPRS, CDMA, PBX
  6. 关于redhat5.4的最新QT SDK的安装后无法编译运行的解决办法(我弄了好几天亲测好用)
  7. The baby-bust economy “婴儿荒”经济 | 经济学人20230603版社论双语精翻
  8. ROS学习(三)调用笔记本和usb外接摄像头
  9. Java Lambda表达式的箭头理解总结
  10. Cisco Packet Tracer 输错命令Translating ...domain servernb