treeview和listview的用法
今天无聊中弄了个小东西,熟悉一下对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 + "教研室";
}
}
运行后截图:

treeview和listview的用法的更多相关文章
- WPF中获取TreeView以及ListView获取其本身滚动条的方法,可实现自行调节scoll滚动的位置(可相应获取任何控件中的内部滚动条)
原文:WPF中获取TreeView以及ListView获取其本身滚动条的方法,可实现自行调节scoll滚动的位置(可相应获取任何控件中的内部滚动条) 对于TreeView而言: TreeViewAut ...
- TreeView和ListView数据库查询数据联动操作
好久不用了,重新整理下放这里以备需要使用,功能见图 数据库表结构 定义TreeView addObject中data存储的记录集 type PNode = ^TNode; TNode = record ...
- C# Winform TreeView 的一些基本用法
下面是treeview的用法TreeView组件是由多个类来定义的,TreeView组件是由命名空间"System.Windows .Forms"中的"TreeView& ...
- python tkinter用Treeview实现ListView效果
先上图 再上代码: import ttk from Tkinter import * root = Tk() tree = ttk.Treeview(root, columns=('col1','co ...
- WPF之Treeview控件简单用法
TreeView:表示显示在树结构中分层数据具有项目可展开和折叠的控件 TreeView 的内容是可以包含丰富内容的 TreeViewItem 控件,如 Button 和 Image 控件.TreeV ...
- 教你做一个单机版人事管理系统(Winform版)treeview与listview使用详情
------------------------------------------------------------------部门部分------------------------------ ...
- xamarin android listview的用法
listview也许是用的非常频繁的一个控件之一,下面我写一个xamarin的listview栗子,大家尝一尝xamarin android开发的乐趣.原谅我的大小写吧. listview绑定自定义的 ...
- Android学习总结(十三) ———— ListView 简单用法
一.ListView的基本概念 在Android所有常用的原生控件当中,用法最复杂的应该就是ListView了,它专门用于处理那种内容元素很多,手机屏幕无法展示出所有内容的情况.ListView可以使 ...
- Android中ListView的用法
使用方法1 显示简单的文本 在layout文件中像加入普通控件一样在layout文件中引入ListView <ListView android:id="@+id/list_view&q ...
随机推荐
- js中document.write()使用方法
<script> var hrf = window.location.href; if(hrf.indexOf('change')>0){ ...
- Tyvj P1016 包装问题 (DP)
底 Background 太原诚成中学2模拟法庭竞赛 第三条道路 描写叙述 Description 有一个箱子容量为v(正整数.o≤v≤20000).同一时候有n个物品(o≤n≤30).每一个物品有一 ...
- 教你Ant安装和配置
Ant它是基于Java施工工具,它的主要作用是产生能够运行Java计划,把握Ant一些功能可以使项目更专业. 忙乱,可以在这里下载2014年8最近一个月Ant http://download.csdn ...
- linux_ubuntu 16.04 更新wifi驱动_无法链接wifi问题
ubuntu kylin ubuntu kylin ubuntu kylin wifi 这个很好解决的,16.04 默认 没有使用wifi驱动设备,默认选择的是:不使用设备1.进入到,软件和更新 -- ...
- Group and sum array of hashes by date
I have an array of hashes like this: [{:created=>Fri, 22 Jan 2014 13:02:13 UTC +00:00, :amount=&g ...
- linux Packet socket (1)简单介绍
本文主要来自于linux自带的man packet手冊: http://man7.org/linux/man-pages/man7/packet.7.html 平时常常使用的INET套接字提供的是7层 ...
- 搭建及修正Hadoop1.2.1 MapReduce Pipes C++开发环境
Hadoop目前人气超旺,返璞归真的KV理念让人们再一次换一个角度来冷静思考一些问题. 但随着近些年来写C/C++的人越来越少,网上和官方WIKI的教程直接落地的成功率却不高,多少会碰到这样那样的问题 ...
- 优秀个人免费私有云OwnCloud 8.0终于发布 - 亮眼新功能初探简介
OwnCloud是一个基于Linux的私有云开源项目,用户可以免费使用它来搭建自己的私有云来进行文件和多媒体等的分享. 本人有幸在大概一年多前因为项目需要而接触和使用到OwnCloud,但不幸的是当时 ...
- Yii2中如何使用CodeCeption
Yii2和CodeCeption CodeCeption是一个全栈的PHP测试框架,关于CodeCeption的介绍见:CodeCeption官方文档. Yii2官方增加了对CodeCeption的支 ...
- ASP.NET 5 Hello World
ASP.NET 5系列教程 (二):Hello World 本篇文章内容比较基础,主要是向大家展示如何创建一个 ASP.NET 5 工程,主要包含内容如下: 创建ASP.NET 5 工程 添加 T ...