C#窗体控件-列表框控件ListBox - 流星落

时间:2024-03-02 10:30:51

C#窗体控件-列表框控件ListBox

列表框(ListBox)用来显示一组相关联的数据,用户可以从中选择一个或多个选项。ListBox中的数据既可以在设计时填充,也可以在程序运行填充。列表框(ListBox)中的每个元素称为“项”。

列表框用于显示一组字符串,可以一次从中选择一个或多个选项。与复选框和单选按钮一样,列表框也提供了要求用户选择一个或多个选项的方式。在设计期间,如果不知道用户要选择的数值个数,就应使用列表框。(例如一起工作的工人列表框)。即使在设计期间知道所有可能的值,但列表中的值非常多,也应考虑使用列表框。

列表框控件常用属性、方法和事件:

Items:列表框中所有的项。
MultiColumn:列表框是否支持多列显示。
SelectedIndex:当前选定项目的索引项,列表框中的每个项都有一个索引号,从0开始。
SelectedItem:获取当前选定项。
SelectedItems:获取当前所有选定项的值。
SelectedValue:表示当前选定项的值。
Sorted:指定是否支持排序。
Text:当前选定项的文本。

方法:
Add:向ListBox的项列表添加项。
Insert:将项插入列表框的指定索引处。
Clear:从集合中移除所有项。
Remove:从集合中移除指定的对象。
RemoveAt:移除集合中指定索引处的项。
SelectedIndexChanged:选择索引发生改变时触发的事件。
SelectedValueChanged:选择值发生改变时触发的事件。

ListBox控件的属性

属    性

描    述

SelectedIndex

这个值表示列表框中选中项的基于0的
索引。如果列表框可以一次选择多个选项,
这个属性就包含选中列表中的第一个选项

ColumnWidth

在包含多个列的列表框中,这个属性指
定列的宽度

Items

Items集合包含列表框中的所有选项,
使用这个集合的属性可以增加和删除选项

MultiColumn

列表框可以有多个列。使用这个属性可
以获取或设置列表框中列的个数

SelectedIndices

这个属性是一个集合,包含列表框中选
中项的所有基于0的索引

SelectedItem

在只能选择一个选项的列表框中,这个属
性包含选中的选项。在可以选择多个选项
的列表框中,这个属性包含选中项中的第一项

SelectedItems

这个属性是一个集合,包含当前选中的所有选项

SelectionMode

在列表框中,可以使用ListSelectionMode
枚举中的4种选择模式:

●None: 不能选择任何选项

●One: 一次只能选择一个选项

● MultiSimple: 可以选择多个选项。使用这个模式,在单击列表中的一项时,该项就会被选中,即使单击另一项,该项也仍保持选中状态,除非再次单击它

●MultiExtended: 可以选择多个选项,用户还可以使用Ctrl、Shift和箭头键
进行选择。它与MultiSimple不同,如果先单击一项,然后单击另一项,则只选中第二个单击的项

Sorted

把这个属性设置为true,会使列表框对它包
含的选项按照字母顺序排序

Text

许多控件都有Text属性。但这个Text属性与其他控件的Text属性大不相同。如果设置列表框控件的Text属性,它将搜索匹配该文本的选项,并选择该选项。如果获取Text属性,返回的值是列表中第一个选中的选项。如SelectionMode是None,就不能使用这个属性

 

 

ListBox控件的方法

方    法

描    述

ClearSelected()

清除列表框中的所有选项

FindString()

查找列表框中第一个以指定字符串开头的字符串,例如FindString("a")就是查找列表框中第一个以a开头的字符串

FindStringExact()

与FindString 类似,但必须匹配整个字符串

GetSelected()

返回一个表示是否选择一个选项的值

SetSelected()

设置或清除选项

ToString()

返回当前选中的选项

 

 

ListBox控件的事件:SelectedIndexChanged在选中选项的索引改变时引发该事件

ListBox 控件又称列表框,它在工具箱中的图标为,它显示一个项目列表供用户选择。在列表框中,用户
一次可以选择一项,也可以选择多项。

1、常用属性:
(1)Items属性: 用于存放列表框中的列表项,是一个集合。通过该属性,可以添加列表项、移除列表项和获得列表项的数目。
(2)MultiColumn 属性:用来获取或设置一个值,该值指示ListBox是否支持多列。值为 true 时表示支持多列,值为 false 时不支持多列。当使用多列模式时,可以使控件得以显示更多可见项。
(3)ColumnWidth 属性:用来获取或设置多列 ListBox控件中列的宽度。
(4)SelectionMode属性:用来获取或设置在ListBox控件中选择列表项的方法。当 SelectionMode属性设置为 SelectionMode.MultiExtended 时,按下 Shift 键的同时单击鼠标或者同时按 Shift 键和箭头键之一(上箭头键、下箭头键、左箭头键和右箭头键),会将选定内容从前一选定项扩展到当前项。按 Ctrl 键的同时单击鼠标将选择或撤销选择列表中的某项;当该属性设置为SelectionMode.MultiSimple 时,鼠标单击或按空格键将选择或撤销选择列表中的某项;该属性的默认值为SelectionMode.One,则只能选择一项。
(5)SelectedIndex属性:用来获取或设置ListBox控件中当前选定项的从零开始的索引。如果未选定任何项,则返回值为1。对于只能选择一项的ListBox控件,可使用此属性确定ListBox中选定的项的索引。如果 ListBox 控件的 SelectionMode 属性设置为 SelectionMode.MultiSimple 或 SelectionMode.MultiExtended,并在该列表中选定多个项,此时应用SelectedIndices来获取选定项的索引。
(6)SelectedIndices。该属性用来获取一个集合,该集合包含 ListBox 控件中所有选定项的从零开始的索引。
(7)SelectedItem属性:获取或设置ListBox中的当前选定项。
(8)SelectedItems属性:获取 ListBox控件中选定项的集合,通常在ListBox控件的SelectionMode属性值设置为SelectionMode.MultiSimple或SelectionMode.MultiExtended(它指示多重选择ListBox)时使用。
(9)Sorted属性:获取或设置一个值,该值指示ListBox控件中的列表项是否按字母顺序排序。如果列表项按字母排序,该属性值为true;如果列表项不按字母排序,该属性值为false。默认值为false。在向已排序的 ListBox控件中添加项时,这些项会移动到排序列表中适当的位置。
(10)Text 属性:该属性用来获取或搜索 ListBox 控件中当前选定项的文本。当把此属性值设置为字符串值时,ListBox 控件将在列表内搜索与指定文本匹配的项并选择该项。若在列表中选择了一项或多项,该属性将返回第一个选定项的文本。
(11)ItemsCount属性:该属性用来返回列表项的数目。
2、常用方法:
(1)FindString方法:用来查找列表项中以指定字符串开始的第一个项,有两种调用格式。
[格式1]:
ListBox对象.FindString(s);
[功能]:在“ListBox 对象”指定的列表框中查找字符串 s,如果找到则返回该项从零开始的索引;如果找
不到匹配项,则返回ListBox.NoMatches。
[格式2]:
ListBox对象.FindString(s,n);
[功能]:在 ListBox 对象指定的列表框中查找字符串 s,查找的起始项为n+1,即 n 为开始查找的前一项的
索引。如果找到则返回该项从零开始的索引;如果找不到匹配项,则返回ListBox.NoMatches。
注意:FindString 方式只是词语部分匹配,即要查找的字符串在列表项的开头,便认为是匹配的,如果要
精确匹配,即只有在列表项与查找字符串完全一致时才认为匹配,可使用FindStringExact方法,调用格式
与功能与FindString基本一致。
(2)SetSelected方法:用来选中某一项或取消对某一项的选择,调用格式及功能如下。
[格式]:
ListBox对象.SetSelected(n,l);
[功能]:如果参数 l 的值是 true,则在 ListBox 对象指定的列表框中选中索引为 n 的列表项,如果参数l 的
值是 false,则索引为n 的列表项未被选中。
(3)Items.Add方法:用来向列表框中增添一个列表项,调用格式及功能如下。
[格式]:
ListBox对象.Items.Add(s);
[功能]:把参数s添加到“listBox对象”指定的列表框的列表项中。
(4)Items.Insert方法:用来在列表框中指定位置插入一个列表项,调用格式及功能如下。
[格式]:
ListBox对象.Items.Insert(n,s);
[功能]:参数n代表要插入的项的位置索引,参数 s代表要插入的项,其功能是把s插入到“listBox对象”
指定的列表框的索引为n的位置处。
(5)Items.Remove方法:用来从列表框中删除一个列表项,调用格式及功能如下。
[格式]:
ListBox对象.Items.Remove(k);
[功能]:从 ListBox对象指定的列表框中删除列表项s。
(6)Items.Clear方法:用来清除列表框中的所有项。其调用格式如下:
ListBox对象.Items.Clear();
该方法无参数。
(7)BeginUpdate方法和EndUpdate方法:这两个方法均无参数,调用格式分别如下:
ListBox对象.BeginUpdate();
ListBox对象.EndUpdate();
这两个方法的作用是保证使用 Items.Add 方法向列表框中添加列表项时,不重绘列表框。即在向列表框添加项之前,调用BeginUpdate方法,以防止每次向列表框中添加项时都重新绘制 ListBox 控件。完成向列表框中添加项的任务后,再调用 EndUpdate 方法使 ListBox 控件重新绘制。当向列表框中添加大量的列表项时,使用这种方法添加项可以防止在绘制 ListBox 时的闪烁现象。
一个例子程序如下:
publicvoidAddToMyListBox()
{listBox1.BeginUpdate();
for(intx=1;x<5000;x++)
{
listBox1.Items.Add("Item"+x.ToString());
}
listBox1.EndUpdate();
}
ListBox控件常用事件有Click和 SelectedIndexChanged,SelectedIndexChanged事件在列表框中改变选中项
时发生。