首页 > 技术文章 > 【C#】TreeView ListView

OnlyACry 2020-10-18 21:19 原文

有两个属性Nodes SelectedNode

Nodes代表着所有节点,是一个集合,可以使用Add方法

先尝试在控件中添加一些菜单什么的(如图):

 代码:

 1 private void Form1_Load(object sender, EventArgs e)
 2 {
 3     //把list1作为节点,把list2添加进去
 4     var list1 = new List<string>() { "1", "2", "3" };
 5     var list2 = new List<string>() { "1-1", "1-2", "1-3" };
 6 
 7     foreach(var outer in list1)
 8     {
 9         //新建一个节点
10         var node = new TreeNode(outer);
11         //node.Text = outer;
12         tvw.Nodes.Add(node);
13         foreach(var inner in list2)
14         {
15             var node1 = new TreeNode(inner);
16             node.Nodes.Add(node1);
17         }
18     }
19 }

 

 1 private void Form1_Load(object sender, EventArgs e)
 2 {
 3     var list1 = new List<string> { "学生信息管理" , "修改个人信息"};
 4     var list1_1 = new List<string> { "全部学生信息","添加学生信息","删除学生信息", "修改学生信息" };
 5     var list2_1 = new List<string> { "修改密码", "查看个人信息" };
 6     /**/
 7     var outer1 = list1[0];
 8     var node = new TreeNode(outer1);
 9     treeView1.Nodes.Add(node);
10     foreach(var inner1 in list1_1)
11     {
12         node.Nodes.Add(new TreeNode(inner1));
13     }
14 
15     var outer2 = list1[1];
16     var _node = new TreeNode(outer2);
17     treeView1.Nodes.Add(_node);
18     foreach(var inner2 in list2_1)
19     {
20         _node.Nodes.Add(new TreeNode(inner2));
21     }
22 }
View Code

 treeView1.ExpandAll(); 可以展开所有节点。

单击节点事件:NodeMouseClickHover,中

 

 1 private void treeView1_NodeMouseHover(object sender, TreeNodeMouseHoverEventArgs e)
 2 {
 3     switch (e.Node.Text)
 4     {
 5         case "1-1": 
 6             {
 7                         
 8             };break;
 9         case "1-2":
10             {
11 
12             };break;
13     }
14 }

 

 

 

根据节点(Node)的文本选择执行语句。

(其他操作,再说吧啊哈哈)

List View:

 1 public Form1()
 2 {
 3     InitializeComponent();
 4 
 5     lvw.Columns.Add("姓名", 100);
 6     lvw.Columns.Add("", 100);
 7     lvw.Columns.Add("年龄", 100);
 8 
 9     lvw.View = View.Details;
10 
11     var name = new ListViewItem("年号大人");
12     lvw.Items.Add(name);
13     name.SubItems.Add(".");
14     name.SubItems.Add("???");
15 }

SubItems.Add会在添加过的东西的同一行后面添加

运行结果:

 

 

 

 

 属性:

FullRowSelect,选中一整行

CheckBox , 选中框

 

推荐阅读