今天无聊中弄了个小东西,熟悉一下对listview和treeview的用法。代码如下:

 public partial class Form1 : Form{private School school;public Form1(){InitializeComponent();Office o1 = new Office("计算机基础","王军","杨晓勇","何平","姜涛");Office o2 = new Office("软件工程", "马建国", "陈军", "刘晓燕");Office o3 = new Office("信息安全", "冯尧", "李建军", "张涛");Department d1=new Department("计算机",o1,o2,o3);Office o4 = new Office("自动控制", "吴自力", "陈锋", "薛小龙");Office o5 = new Office("工业设计", "吴淑华", "方坤", "何丽", "蔡聪");Department d2=new Department("机电工程",o4,o5);Office o6 = new Office("信息管理", "赵民", "盛晓楠", "徐小平");Office o7 = new Office("工商管理", "张敏", "李玲", "吕倩", "高健");Department d3=new Department("经济管理",o6,o7);school = new School("科大", d1, d2, d3);TreeNode root = treeView1.Nodes.Add(school.ToString());foreach(Department d in school.departments ){TreeNode node = root.Nodes.Add(d.ToString());foreach (Office o in d.offices){node.Nodes.Add(o.ToString());}}listView1.Columns.Add("姓名");listView1.Columns.Add("电话");listView1.Columns.Add("电子邮件");}private void treeView1_AfterSelect(object sender, TreeViewEventArgs e){listView1.Items.Clear();if (e.Node.Level == 0){foreach (Department d in school.departments){listView1.Items.Add(d.ToString(),0);}}else if (e.Node.Level == 1){foreach (Office o in school.departments[e.Node.Index].offices){listView1.Items.Add(o.ToString(), 1);}}else if (e.Node.Level == 2){foreach (string s in school.departments[e.Node.Parent.Index].offices[e.Node.Index].teachers){listView1.Items.Add(s.ToString(), 2);}}}}public class School{public School(string name, params Department[] departments){this.Name = name;this.departments = new List<Department>(departments);}public string Name { get; set; }public List<Department> departments { get; set; }public override string ToString(){return Name;}}public class Department{public string Name { get; set; }public List<Office> offices { get; set; }public Department(string name, params Office[] offices){this.Name = name;
            this.offices = new List<Office>(offices);}public override string ToString(){return Name + "系";}}public class Office{public string Name { get; set; }public List<string> teachers { get; set; }public Office(string name, params string[] teachers){this.Name = name;this.teachers = new List<string>(teachers);}public override string ToString(){return Name + "教研室";}}
运行后截图:

转载于:https://www.cnblogs.com/xuekai-to-sharp/p/3384548.html

treeview和listview的用法相关推荐

  1. c# winform TreeView与ListView的项互相拖动的应用[转载]

    转载modede 很久没写教程了,停顿了有两年之久了.今天我们来讨论讨论 winform 中TreeView与ListView,通观两者很相似,只是一个是树形结构,一个是列表结构. 今天自己创建的群里 ...

  2. [Delphi]ListView基本用法大全

    Delphi ListView基本用法大全 //增加项或列(字段) ListView1.Clear; ListView1.Columns.Clear; ListView1.Columns.Add; L ...

  3. Android ListView常用用法(结合长按、数据库等)

    http://www.iteye.com/topic/540423 ListView是比较常用的控件,但一直都觉得创建ListView步骤有点繁琐,故在此总结一下,方便查阅. 程序效果是实现一个Lis ...

  4. Delphi ListView基本用法大全

    Delphi ListView基本用法大全 //增加项或列(字段) ListView1.Clear; ListView1.Columns.Clear; ListView1.Columns.Add; L ...

  5. Delphi ListView的用法(常用技巧) 作者:蓝色忧郁

    Delphi ListView的用法(常用技巧) 作者:蓝色忧郁 日期:2006-08-10 字体大小: 小 中 大 //增加   i := ListView1.Items.Count;   with ...

  6. ListView基本用法及适配器介绍

    ListView基本用法 ListView常用属性 1.android:divider="" 列表之间绘制的颜色或者图片.一般开发中用于分隔表项.在实际开发过程中,如果你不想要列表 ...

  7. Android列表用法之二:实战ListView高级用法

    在我们的项目中,并不是所有列表都是简单的使用.类似于新闻列表.QQ聊天列表等,具有图文并排的列表,每个item都有它不同的布局类型,都有其不同的实现方式.这类复杂的列表表现形式,在各类知名应用当中,不 ...

  8. 在winform中从外部拖动节点到树形结构(treeview和listview相互拖动)(一)

    最近一个项目要用到从listview向treeview拖动item,达到从外部拖动图标成为树形结构的一部分,通过查阅资料总结了一些实现方式,分享给大家.这是winform中的例子. 在进行拖放操作之前 ...

  9. Android ListView常用用法(二)

    来自:51CTO论坛 原帖:http://mobile.51cto.com/android-254823.htm Android开发:实现带图片和checkbox的listview 项目要用到一个li ...

最新文章

  1. 火遍AI圈的万字长文,Lecun却说“标题太好笑,作者发推宣战:欢迎来辩!
  2. 【Java 网络编程】UDP API 简介 ( DatagramSocket | DatagramPacket )
  3. 地图API引发的设想
  4. php5.5 mysql密码无法_MySQL密码正确却无法本地登录的解决方法
  5. Swagger2 添加HTTP head参数
  6. Netty与Spring WebSocket
  7. 如何将本地代码使用Git上传至Github
  8. 学生们喜欢在计算机教室上课用英语怎么说,说说学习本课的感想,并谈谈在信息技术课堂上如何体现以学生为主体,教师为主导?...
  9. java学习(133):泛型
  10. Ubuntu18.04安装最新R语言环境的方法
  11. 4-3利用神经网络解决分类和回归问题(1)
  12. 字符串处理 BestCoder Round #43 1001 pog loves szh I
  13. 从HighGUI的一段代码中看OpenCV打开视频的方式
  14. Ubuntu下安装网易有道词典
  15. Footprint 8月月报 DeFi市场多点开花,9月是否会迎来下一个爆发点
  16. WordPress社交问答社区主题
  17. SpringBoot Web项目 解析
  18. [Xilinx FPGA] #4 Xilinx FPGA 芯片命名规则与查询方法
  19. 人工智能传奇—关于AI起源与发展的故事
  20. 图解正则表达式,这一篇就够了

热门文章

  1. X86/X64平台的内存条测试软件介绍(三)
  2. 关于QGroundControl的软件架构的理解
  3. 【matlab专题】APP设计(一):APP的作用与开发
  4. 国内国外社交网站会聚用户分析
  5. Ms outlook 2007 试用
  6. 困难——循环控制结构
  7. 人脸常用数据集下载地址
  8. Curved UI - VR Ready Solution To Bend Warp Your Canvas在VRTK中的使用解决方案
  9. IIS写权限利用续以及写权限漏洞来由解释
  10. 树莓派python3.6.8安装opencv_子豪兄教你在树莓派上安装OpenCV