List1.Text是列表框當前選中項的文字,List1.List是列表框中所有選項的集合,而List1.ListIndex是當前選項的索引號,所以List1.List (List1.ListIndex)也就是當前選中項的文字。這其實是列表框當前選中項文字在列表框不同屬性的不同表示法而已。就像張三是甲班的一個同學,他的座位號是10,那麼“甲班的張三”和“甲班10號的同學”在這裡就指的是同一個人,只是說法不同而已。所以嚴格說來兩者是沒什麼可比性的。如果真要說什麼區別,那就是前者是一個固定值,而後者是個集合,根據索引號的不同可以表示其他的成員,如甲班11號同學、甲班20號同學等等。至於為什麼前者只讀,後者可賦值,這沒什麼好解釋的,VB就是這麼規定的。要真追究為什麼,就是因為列表框是由多個選項組成的,那麼修改某個選項的內容時,就要先透過索引號找到該項然後再修改才顯得規範,另外列表框是有可能出現沒有當前選中項的情況的(就是說沒有任何選項是被滑鼠選中的),那麼假如Text屬性可賦值的話,在這種情況給Text屬性賦值就會出錯了。
List1.Text是列表框當前選中項的文字,List1.List是列表框中所有選項的集合,而List1.ListIndex是當前選項的索引號,所以List1.List (List1.ListIndex)也就是當前選中項的文字。這其實是列表框當前選中項文字在列表框不同屬性的不同表示法而已。就像張三是甲班的一個同學,他的座位號是10,那麼“甲班的張三”和“甲班10號的同學”在這裡就指的是同一個人,只是說法不同而已。所以嚴格說來兩者是沒什麼可比性的。如果真要說什麼區別,那就是前者是一個固定值,而後者是個集合,根據索引號的不同可以表示其他的成員,如甲班11號同學、甲班20號同學等等。至於為什麼前者只讀,後者可賦值,這沒什麼好解釋的,VB就是這麼規定的。要真追究為什麼,就是因為列表框是由多個選項組成的,那麼修改某個選項的內容時,就要先透過索引號找到該項然後再修改才顯得規範,另外列表框是有可能出現沒有當前選中項的情況的(就是說沒有任何選項是被滑鼠選中的),那麼假如Text屬性可賦值的話,在這種情況給Text屬性賦值就會出錯了。