C#列表控件、信息导航控件概述

本文详细介绍了Windows编程中常用的五种控件:ListBox、CheckedListBox、ComboBox、ListView和TreeView的功能及使用方法,包括各自的支持特性、属性和应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  列表控件指的是:ListBox(列表框)、CheckedListBox(带复选框的列表框)、ComboBox(组合框),它们为用户提供可选择(单选或多选)的列表项;信息导航控件指的是:ListView(列表视图框)、TreeView(树视图框),它们为用户提供信息的导航功能(如文件夹信息)。


一、ListBox控件

ListBox(列表框)提供单一的下拉列表供用户选择(特别地,当MultiColumn属性为true时可以支持多列(行为确定数),但本质上只是竖向显示变成横向了!),并且不能设置Columns之类的信息(也就是不能设置“列标题”)。ListBox可以支持:

  1. Ctrl键进行的多选(当SelectionMode 设置为MultiExtended 时);
  2. 直接点击进行的多选(当SelectionMode 设置为MultiSimple时);
  3. 单一选择(当SelectionMode设置为One时)。

当然了,实际使用时还应该注意它的几个重要属性如:DataSource、Items、SelectedItems、Remove、.Count与方法等。

二、CheckedListBox控件

CheckedListBox(带复选框的列表框)与ListBox十分相似,只是在每一个列表选择项前放置了一个复选框,以直观地表示所选定的列表项。因此,除了与ListBox相同的属性和方法外,还应该注意的地方是:

  1. CheckedListBox的SelectionMode不能多选(最多单选),它的多选功能被放置在Checked复选框上去了。
  2. 同样的不能设置Columns之类的信息(也就是不能设置“列标题”)。
  3. CheckedListBox应该好好使用其CheckedItems相关属性。
  4. 无数据源DataSource。

三、ComboBOX控件

ComboBox(组合框)可以为用户提供下拉列表选项,但是ComboBox只能是单选的!ComboBox的DropDownStyle属性可以设置其下拉选择模式:

  1. 当为Simple时,文本框与列表框为展开的状态,允许在文本框中输入内容和使用“向上箭头”、“向下箭头”进行选择。
  2. 当为DropDown时,默认不显示列表框,支持在文本框中输入内容与点击下拉列表进行选项。
  3. 当为DropDownList时,默认不显示列表框,只能进行下拉选择而不能进行输入!当然了,实际应用时应该注意一些其他的重要属性方法。
  4. 有数据源DataSource。

四、ListView控件

ListView(列表视图框)可以为用户提供平铺的列表信息,最上面可以设置Columns列标题。现在介绍一些重要的属性:

  1. Columns设置“列标题集合”。
  2. Items设置横行项(相当于文件夹),再结合“列标题”可以进一步设置其包含的SubItems子项(如文件夹里的具体文件等信息)。
  3. View属性应该设置为Detial(全显示)。
  4. GridLnes设置为true显示格网线。
  5. FullRowSelect指示当项被选中时,其所有的子项是否同该项一起突出显示(在点击选择时)。
  6. MultiSelect默认为true,在按CTRL下可以支持多选。
  7. CheckBoxs设置是否显示复选框(在项的左边),为true时一定可以多选(因为是复选框必然可多选,MultiSelect只是针对点击选择时)。
  8. 如果想把ListView(列表视图框)用成类似于ListBox也是可以的,毕竟它的显示更加形象——可以拥有“列标题”。在用ListView显示数据内容时,要用ListViewItem it = new ListViewItem(Line)(Line是一个string/object数组);listView1.Items.Add(it1)。当取出ListView中的数据时,应该用:string data = listView1.CheckedItems[0].SubItems[1].Text; textBox1.Text = data;即是将第一项的第二子项内容赋予文本框TextBox。

五、TreeView控件

TreeView(树视图框)可以将显示的信息以“树形层次结构”显示出来,很像WinDows中的资源管理器。在TreeView控件中,其中的每一个结点都是一个TreeNode类型对象,每一个结点对象都有一个标题属性Text和两个可选的图像属性,这两个可选的图像属性分别用来图形化结点的选中或未被选中状态,这个属性需要ImageList控件支持。


QQ好友例表件 带实例和源码 //1. 属性列表: // SelectionMode 组件中条目的选择类型,即多选(Multiple)、单选(Single) // Rows 列表框中显示总共多少行 // Selected 检测条目是否被选中 // SelectedItem 返回的类型是ListItem,获得列表框中被选择的条目 // Count 列表框中条目的总数 // SelectedIndex 列表框中被选择项的索引值 // Items 泛指列表框中的所有项,每一项的类型都是ListItem //2. 取列表框中被选中的值 // ListBox.SelectedValue //3. 动态的添加列表框中的项: // ListBox.Items.Add("所要添加的项"); //4. 移出指定项: // //首先判断列表框中的项是否大于0 // If(ListBox.Items.Count > 0 ) // { ////移出选择的项 //ListBox.Items.Remove(ListBox.SelectedItem); // } //5. 清空所有项: // //首先判断列表框中的项是否大于0 // If(ListBox.Items.Count > 0 ) // { ////清空所有项 //ListBox.Items.Clear(); // } //6. 列表框可以一次选择多项: // 只需设置列表框的属性 SelectionMode="Multiple",按Ctrl可以多选 //7. 两个列表框联动,即两级联动菜单 // //判断第一个列表框中被选中的值 // switch(ListBox1.SelectValue) // { ////如果是"A",第二个列表框中就添加这些: //case "A" // ListBox2.Items.Clear(); // ListBox2.Items.Add("A1"); // ListBox2.Items.Add("A2"); // ListBox2.Items.Add("A3"); ////如果是"B",第二个列表框中就添加这些: //case "B" // ListBox2.Items.Clear(); // ListBox2.Items.Add("B1"); // ListBox2.Items.Add("B2"); // ListBox2.Items.Add("B3"); // } //8. 实现列表框中项的移位 // 即:向上移位、向下移位 // 具体的思路为:创建一个ListBox对象,并把要移位的项先暂放在这个对象中。 // 如果是向上移位,就是把当前选定项的的上一项的值赋给当前选定的项,然后 // 把刚才新加入的对象的值,再附给当前选定项的前一项。 // 具体代码为: // //定义一个变量,作移位用 // index = -1; // //将当前条目的文本以及值都保存到一个临时变量里面 // ListItem lt=new ListItem (ListBox.SelectedItem.Text,ListBox.SelectedValue); // //被选中的项的值等于上一条或下一条的值 // ListBox.Items[ListBox.SelectedIndex].Text=ListBox.Items[ListBox.SelectedIndex + index].Text; // //被选中的项的值等于上一条或下一条的值 // ListBox.Items[ListBox.SelectedIndex].Value=ListBox.Items[ListBox.SelectedIndex + index].Value; // //把被选中项的前一条或下一条的值用临时变量中的取代 // ListBox.Items[ListBox.SelectedIndex].Test=lt.Test; // //把被选中项的前一条或下一条的值用临时变量中的取代 // ListBox.Items[ListBox.SelectedIndex].Value=lt.Value; // //把鼠标指针放到移动后的那项上 // ListBox.Items[ListBox.SelectedIndex].Value=lt.Value; //9. 移动指针到指定位置: // (1).移至首条 // //将被选中项的索引设置为0就OK了 // ListBox.SelectIndex=0; // (2).移至尾条 // //将被选中项的索引设置为ListBox.Items.Count-1就OK了 // ListBox.SelectIndex=ListBox.Items.Count-1; // (3).上一条 // //用当前被选中的索引去减 1 // ListBox.SelectIndex=ListBox.SelectIndex - 1; // (4).下一条 // //用当前被选中的索引去加 1 // ListBox.SelectIndex=ListBox.SelectIndex + 1; //this.ListBox1.Items.Insertat(3,new ListItem("插入在第3行之后项","")); //this.ListBox1.Items.Insertat(index,ListItem) //ListBox1.Items.Insert(0,new ListItem("text","value"));
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

C_xxy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值