原创 7.6 使用列表框显示列表

2009-10-6 11:17 2711 8 8 分类: 软件与OS

7.6  使用列表框显示列表



列表框用于为用户显示一个列表。使用很少的Visual C# 代码,就可以在列表中添加或删除列表项。另外,可以创建一个列表框使用户可以选择其中的一项或多项。当列表框包含的项比它可显示的多时,将自动出现滚动条。






image015.jpg



注意:列表框的另一个变种是组合框,组合框看上去像一个右边带有一个下拉箭头按钮的文本框。单击组合框的按钮,控件将显示一个下拉列表框。使用组合框中的列表与使用列表框一样,因此本节将讨论列表操作的细节,然后在下一节讨论组合框的特性。






现在并不是要在Picture
Viewer项目中添加列表框或组合框,因此,执行下列步骤创建一个新的项目。



1.创建一个新的Windows应用程序项目,命名为“Lists”。



2.在“解决方案资源管理器”中右击Form1.cs,选择“重命名”,然后将缺省窗体的名称修改为fclsLists.cs。接下来,将窗体的Text属性设置为“Lists Example”。



3.双击工具箱的“ListBox”项,添加一个新的列表框控件到窗体中,然后如下设置列表框的属性:






属性





Name



lstPinkFloydAlbums 



Location



64,21



Size



160,121






列表框中包含的每一项都是列表框Items集合的元素。对列表项的操作,包括添加或删除项目,是通过对Items集合的操作实现的。最常使用代码来操作Items集合(本章稍后将介绍),但在设计时也可用“属性”窗口对Items集合进行操作。



7.6.1  在设计时操作元素



Items集合可通过列表框的属性进行访问。在“属性”窗口中找到Items属性,单击选中它。这时将出现熟悉的带有三个点
的按钮,表示你可以对该属性进行高级的设置。现在单击该按钮,显示“字符串集合编辑器”。要添加元素到集合中,只要在文本框中输入元素—每个元素一行。



输入下列元素:



?    Atom
Heart Mother;



?    A
Saucerful of Secrets;



?    Wish
You Were Here;



?    Animals;



?    Echoes;



?    Meddle。



完成之后,屏幕应如图7.12所示。单击“确定”来提交你的输入并关闭窗口。列表框中现在包含了你所输入的元素。






image049.jpg




图7.12 



在设计时使用该对话框对Items集合进行操作






7.6.2  在运行时操作元素



在第3章中,你学习了对象、属性、方法和集合,所有这些知识都会在此发挥作用。列表框(或组合框)的Items属性是一个返回集合(集合在许多地方与对象一样—它们也有属性和方法)的对象属性。要对列表的元素进行操作,可通过Items集合进行。



列表可以包含重复的值,你将在下面这个例子中看到这一点。因此,Visual C#
2005需要一种机制来唯一地区别列表中的每个元素,而不是使用元素的文本。这一点是通过为Items集合中的每个元素分配一个唯一的索引来实现的。列表
中第一个元素的索引为0,第二个元素的索引为1,依此类推。索引是元素相对于Items集合中的第一个元素—而不是列表中第一个显示的元素—的顺序位置。



7.6.3  添加元素到列表中



使用Items集合的Add()方法,将新元素添加到Items集合中。下面将创建一个按钮,用来添加一张唱片到列表中。在窗体中添加一个新的按钮,并如下设置它的属性:






属性





Name



btnAddItem



Location



95,148



Size



96,23



Text



Add
an Item






双击按钮访问它的Click事件,然后加入下面的代码:





lstPinkFloydAlbums.Items.Add("Dark Side of
the Moon");





注意,Add()方法接受一个参数—要添加到列表框中的文本。






image015.jpg



注意:与在设计时添加的元素不同,通过代码添加的元素在程序结束运行之后并没有保存下来。






现在,按F5键运行项目,然后单击这个按钮。这时,新的唱片将添加到列表的底部。再次单击按钮,将添加一个具有相同唱片名称的元素到列表中。列表框并不关心元素是否已经存在于列表中,每次调用Items集合的Add()方法都将添加一个新的元素到列表中。



Items集合的Add()方法可以称为一个函数,它返回索引(新添加元素在集合中的顺序位置),如在下面的代码中:





int intIndex;



intIndex = lstPinkFloydAlbums.Items.Add("Dark
Side of the Moon");





知道元素的索引是有用的,下面你将看到。



停止运行项目,并保存你的工作。






image016.jpg






示:要将一个元素添加到Items集合中的指定位置,使用Insert()方法。Insert()方法接受一个索引和文本。例如,要在列表顶部添加一个元
素,可用这样的语句:lstPinkFloydAlbums.Items.Insert(0,"Dark Side of the
Moon");记住,列表中第一个元素的索引为0。








7.6.4  将元素从列表中删除



将一个元素从列表中删除,与添加元素一样简单,只需一个方法调用:调用Items集合的Remove()方法。Remove()方法接受一个字符串,即要删除的元素的文本。下面创建一个按钮从列表中删除一个元素。



显示窗体设计器,在窗体上创建一个新的按钮。如下设置按钮的属性:






属性





Name



btnRemoveItem



Location



95,177



Size



96,23



Text



Remove
an Item






双击按钮访问它的Click事件,然后加入下面的代码:





lstPinkFloydAlbums.Items.Remove("Dark Side of
the Moon");





Remove()方法告诉Visual C# 搜索Items集合,从第一个元素(index =
0)开始查找,并删除找到的第一个与指定文本相匹配的元素。记住,同一文本可以对应有多个元素。Remove()方法只删除找到的第一个。当找到文本并删
除之后,Visual C# 就停止查找。



按F5键运行项目。单击“Add an Item”按钮几次,将“Dark Side of the Moon”添加到列表中(见图7.13)。接下来,单击“Remove an Item”,注意观察Visual C# 如何找到并删除指定唱片的一个实例。






image050.jpg




图7.13 



列表框可包含重复的项,但每个项在集合中都是唯一识别的









提示:要删除指定索引的元素,使用RemoveAt()方法。例如,要删除列表中的第一个元素,可用下面的语句:lstPinkFloydAlbums.Items.RemoveAt(0);。



image016.jpg






停止运行项目,并保存你的工作。



7.6.5  清除列表



要完全清除列表中的内容,使用Clear()方法。下面添加一个按钮到窗体中,单击该按钮时将清除列表。添加一个新的按钮到窗体中,并如下设置按钮的属性:






属性





Name



btnClearList 



Location



95,206



Size



96,23



Text



Clear
List






双击按钮访问它的Click事件,然后加入下面的代码:





lstPinkFloydAlbums.Items.Clear();





按F5键运行项目,然后单击“Clear List”按钮。Clear()并不关心元素是在设计时还是在运行时添加到列表中的,它总是将列表中的所有元素删除。现在停止运行项目,并保存你的工作。






image016.jpg




示:记住,Add()、Insert()、Remove()、RemoveAt()和Clear()方法都是Items集合的方法,而不是列表框本身的方
法。如果你忘了这些方法都是Items集合的成员,你可能会为在代码中输入了列表框的名称和点号却找不到这些成员而感到迷惑。






7.6.6  在列表中查询指定元素的信息



有两个属性提供关于选中元素的信息:SelectedItem和SelectedIndex。这两个是列表框本身的属性而不
是列表框Items集合的属性。SelectedItem返回当前选中元素的文本。如果没有元素被选中,该属性返回一个空的字符串。有时需要知道选中元素
的索引,这可通过列表框的SelectedIndex属性获得。列表中的第一个元素的索引为0。如果没有元素被选中,SelectedIndex返回
-1,这是无效的元素索引。



下面要添加一个按钮到窗体中,当单击这个按钮时,将在一个消息框中显示选中元素的文本和索引。添加一个新的按钮到窗体中,并如下设置它的属性:






属性





Name



btnShowItem 



Location



95,235



Size



96,23



Text



Show
Selected






双击按钮访问它的Click事件,然后输入下面的代码(在第一行之后按回车键):





MessageBox.Show("You selected " +
lstPinkFloydAlbums.SelectedItem +



      " which has an
index of " + lstPinkFloydAlbums.SelectedIndex);





MessageBox.Show()是一个用于显示消息给用户的Visual C# 函数。你将在第17章中学习MessageBox.Show()。



按F5键运行项目,然后单击“Show Selected”按钮。注意,由于没有选中列表中的元素
,消息框中显示选中元素的索引为-1(表示没有元素被选中)。单击列表中的一个元素选中它,然后再单击“Show
Selected”按钮。这次,你可以在消息框中看到选中元素的文本和索引。停止运行项目,并保存你的工作。







意:可以将列表框设置为允许选中多个元素。要实现这一点,将列表框的SelectionMode属性设置为MultiSimple(单击一个元素可切换它
的选中状态)或MultiExtended(要选择多个元素,必须按Ctrl或Shift键)。要判断一个多选择列表框中有哪些元素被选中,使用列表框的
SelectedItems集合。



image015.jpg






7.6.7  对列表进行排序



列表框和组合框都有一个Sorted属性。当控件最开始被创建时,该属性设置为False。将该属性修改为
True,Visual C#
将按照字母顺序对列表的内容进行排序。列表中的内容排序后,Items集合中每个元素的索引都将发生改变,因此不能再使用将Sorted属性设为Ture
之前获得的索引值。



Sorted是属性而不是方法。你不必调用Sorted来对列表的内容进行排序,只要将Sorted属性设置为
True,Visual C#
就将强制进行排序。这意味着使用Add()方法或Insert()方法添加的所有元素都自动被插入到合适的排序位置,而不是插入到列表的最后或某个指定的
位置。

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
8
关闭 站长推荐上一条 /3 下一条