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

  1.  public partial class Form1 : Form
  2.     {
  3.         private School school;
  4.         public Form1()
  5.         {
  6.             InitializeComponent();
  7.             Office o1 = new Office("计算机基础","王军","杨晓勇","何平","姜涛");
  8.             Office o2 = new Office("软件工程", "马建国", "陈军", "刘晓燕");
  9.             Office o3 = new Office("信息安全", "冯尧", "李建军", "张涛");
  10.             Department d1=new Department("计算机",o1,o2,o3);
  11.             Office o4 = new Office("自动控制", "吴自力", "陈锋", "薛小龙");
  12.             Office o5 = new Office("工业设计", "吴淑华", "方坤", "何丽", "蔡聪");
  13.             Department d2=new Department("机电工程",o4,o5);
  14.             Office o6 = new Office("信息管理", "赵民", "盛晓楠", "徐小平");
  15.             Office o7 = new Office("工商管理", "张敏", "李玲", "吕倩", "高健");
  16.             Department d3=new Department("经济管理",o6,o7);
  17.             school = new School("科大", d1, d2, d3);
  18.  
  19.             TreeNode root = treeView1.Nodes.Add(school.ToString());
  20.             foreach(Department d in school.departments )
  21.             {
  22.                 TreeNode node = root.Nodes.Add(d.ToString());
  23.                 foreach (Office o in d.offices)
  24.                 {
  25.                     node.Nodes.Add(o.ToString());
  26.                 }
  27.             }
  28.             listView1.Columns.Add("姓名");
  29.             listView1.Columns.Add("电话");
  30.             listView1.Columns.Add("电子邮件");
  31.  
  32.         }
  33.  
  34.         private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
  35.         {
  36.             listView1.Items.Clear();
  37.             if (e.Node.Level == 0)
  38.             {
  39.                 foreach (Department d in school.departments)
  40.                 {
  41.                     listView1.Items.Add(d.ToString(),0);
  42.                 }
  43.             }
  44.             else if (e.Node.Level == 1)
  45.             {
  46.                 foreach (Office o in school.departments[e.Node.Index].offices)
  47.                 {
  48.                     listView1.Items.Add(o.ToString(), 1);
  49.                 }
  50.             }
  51.             else if (e.Node.Level == 2)
  52.             {
  53.                 foreach (string s in school.departments[e.Node.Parent.Index].offices[e.Node.Index].teachers)
  54.                 {
  55.                     listView1.Items.Add(s.ToString(), 2);
  56.                 }
  57.             }
  58.         }
  59.     }
  60.  
  61.     public class School
  62.     {
  63.         public School(string name, params Department[] departments)
  64.         {
  65.             this.Name = name;
  66.             this.departments = new List<Department>(departments);
  67.         }
  68.         public string Name { get; set; }
  69.         public List<Department> departments { get; set; }
  70.         public override string ToString()
  71.         {
  72.             return Name;
  73.         }
  74.     }
  75.  
  76.     public class Department
  77.     {
  78.         public string Name { get; set; }
  79.         public List<Office> offices { get; set; }
  80.         public Department(string name, params Office[] offices)
  81.         {
  82.             this.Name = name;
  1.             this.offices = new List<Office>(offices);
  2.         }
  3.         public override string ToString()
  4.         {
  5.             return Name + "系";
  6.         }
  7.     }
  8.  
  9.     public class Office
  10.     {
  11.         public string Name { get; set; }
  12.         public List<string> teachers { get; set; }
  13.         public Office(string name, params string[] teachers)
  14.         {
  15.             this.Name = name;
  16.             this.teachers = new List<string>(teachers);
  17.         }
  18.         public override string ToString()
  19.         {
  20.             return Name + "教研室";
  21.         }
  22.     }
  23. 运行后截图:

  1.  

treeview和listview的用法的更多相关文章

  1. WPF中获取TreeView以及ListView获取其本身滚动条的方法,可实现自行调节scoll滚动的位置(可相应获取任何控件中的内部滚动条)

    原文:WPF中获取TreeView以及ListView获取其本身滚动条的方法,可实现自行调节scoll滚动的位置(可相应获取任何控件中的内部滚动条) 对于TreeView而言: TreeViewAut ...

  2. TreeView和ListView数据库查询数据联动操作

    好久不用了,重新整理下放这里以备需要使用,功能见图 数据库表结构 定义TreeView addObject中data存储的记录集 type PNode = ^TNode; TNode = record ...

  3. C# Winform TreeView 的一些基本用法

    下面是treeview的用法TreeView组件是由多个类来定义的,TreeView组件是由命名空间"System.Windows .Forms"中的"TreeView& ...

  4. python tkinter用Treeview实现ListView效果

    先上图 再上代码: import ttk from Tkinter import * root = Tk() tree = ttk.Treeview(root, columns=('col1','co ...

  5. WPF之Treeview控件简单用法

    TreeView:表示显示在树结构中分层数据具有项目可展开和折叠的控件 TreeView 的内容是可以包含丰富内容的 TreeViewItem 控件,如 Button 和 Image 控件.TreeV ...

  6. 教你做一个单机版人事管理系统(Winform版)treeview与listview使用详情

    ------------------------------------------------------------------部门部分------------------------------ ...

  7. xamarin android listview的用法

    listview也许是用的非常频繁的一个控件之一,下面我写一个xamarin的listview栗子,大家尝一尝xamarin android开发的乐趣.原谅我的大小写吧. listview绑定自定义的 ...

  8. Android学习总结(十三) ———— ListView 简单用法

    一.ListView的基本概念 在Android所有常用的原生控件当中,用法最复杂的应该就是ListView了,它专门用于处理那种内容元素很多,手机屏幕无法展示出所有内容的情况.ListView可以使 ...

  9. Android中ListView的用法

    使用方法1 显示简单的文本 在layout文件中像加入普通控件一样在layout文件中引入ListView <ListView android:id="@+id/list_view&q ...

随机推荐

  1. Java 反射 想

    所谓反射.是指在执行时状态中,获取类中的属性和方法.以及调用当中的方法的一种机制. 这样的机制的作用在于获取执行时才知道的类(Class)及当中的属性(Field).方法(Method)以及调用当中的 ...

  2. 解决RecyclerView无法onItemClick问题

    供RecyclerView采用.会员可以查看将替代ListView的RecyclerView 的使用(一),单单从代码结构来说RecyclerView确实比ListView优化了非常多.也简化了我们编 ...

  3. CSS设置滚动条样式[转]

    原文转载地址:http://www.javascript100.com/?p=756 webkit浏览器css设置滚动条 主要有下面7个属性 ::-webkit-scrollbar 滚动条整体部分,可 ...

  4. Android 布局学习之——Layout(布局)具体解释二(常见布局和布局參数)

     [Android布局学习系列]   1.Android 布局学习之--Layout(布局)具体解释一   2.Android 布局学习之--Layout(布局)具体解释二(常见布局和布局參数)   ...

  5. C语言学习_查找三分之二

    查找三分之二: #include <stdio.h> #define M 10 int main(void) { int front, near, mid1, mid2; int n; i ...

  6. opencv2对于读书笔记——二值化——thresholded功能

    opencv二进制图象值功能threshold功能 其结构 double cv::threshold( //二值化函数 const CvArr* src, //原始图像 CvArr* dst, //输 ...

  7. ASP.NET 5 (vNext)

    ASP.NET 5 (vNext) 理解和入门   概述 ASP.NET 5 (又称为vNext) 是自ASP.NET产生15年以来一次革命性的更新, 我们可以从以下几点来理解其概貌和意义: ASP. ...

  8. 速度 Github

    首先需要了解.git 是版本号的管理工具,为了能够把任意代码托管执照:github 其中一个是. 应用 github 什么不该说的帐户. 那么,申请后,在需求 github 并建立了独特的本地机器上的 ...

  9. Responsive Design in 3 Steps

    Responsive web design is no doubt a big thing now. If you still not familiar with responsive design, ...

  10. 九度oj题目&amp;吉大考研11年机试题全解

    九度oj题目(吉大考研11年机试题全解) 吉大考研机试2011年题目: 题目一(jobdu1105:字符串的反码).    http://ac.jobdu.com/problem.php?pid=11 ...