VB中 List1.Text 和 List1.List (List1.ListIndex)有什么差别?

如题所述

List1.Text是列表框当前选中项的文本,List1.List是列表框中所有选项的集合,而List1.ListIndex是当前选项的索引号,所以List1.List (List1.ListIndex)也就是当前选中项的文本。

这其实是列表框当前选中项文本在列表框不同属性的不同表示法而已。就像张三是甲班的一个同学,他的座位号是10,那么“甲班的张三”和“甲班10号的同学”在这里就指的是同一个人,只是说法不同而已。所以严格说来两者是没什么可比性的。如果真要说什么区别,那就是前者是一个固定值,而后者是个集合,根据索引号的不同可以表示其他的成员,如甲班11号同学、甲班20号同学等等。
至于为什么前者只读,后者可赋值,这没什么好解释的,VB就是这么规定的。要真追究为什么,就是因为列表框是由多个选项组成的,那么修改某个选项的内容时,就要先通过索引号找到该项然后再修改才显得规范,另外列表框是有可能出现没有当前选中项的情况的(就是说没有任何选项是被鼠标选中的),那么假如Text属性可赋值的话,在这种情况给Text属性赋值就会出错了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-11
结果一样的追问

但是……到底有什么不同呢?可不可以举个例子啊?多谢

追答

它们返回的值是一样的,可以说是一样的
要说区别:
List1.Text 是当前选中项的文本
List1.List (List1.ListIndex) 是代表选项集合(数组)中的一个元素,这个元素指定为当前项
使用过程中这两个表达是一样的效果,第一个比较简洁明了

追问

那怎么理解:第一个 只读;第二个 可赋值
多谢!

追答

你说的也许就是它们的主要区别吧

list1.Text="aaa" list1无反应,是只读属性
list1.list(0) ="aaa" list1的第一项变为aaa,可赋值

相似回答