2024年3月26日发(作者:)

ComboBox有几个不同的属性用来获取当前选取的选项:、

edIndex、edItem、edText、

edValue 。

SelectedIndex获取的是选中项的索引,从0开始;

SelectedItem获取的是选中项本身,这里返回的Object类型的一个对象,不一定是选

中项的文本。比如现在我们将ComboBox绑定到一个DataReader上,如果我们使用

ng()的话,返回的是:wView,这表明返回的是一个

wView的对象,然后转换为Object返回。

SelectedValue获取或设置由ValueMember 属性指定的成员属性的值(MSDN)。即是

说要绑定了数据源之后才能使用这个属性。

SelectedText获取或设置ComboBox 的可编辑部分中选定的文本(MSDN)。为了测

试这个属性,我们使用一个click进行测试,返回的是一个空字符串,关于这个原因,MSDN

的解释是:當下拉式方塊失去焦點時,選取範圍點就會移至文字的開頭,而任何原本選取的

文字就會變成未選取狀態。在這個範例中,取得 SelectedText 屬性就會擷取空字串,而設

定 SelectedText 屬性就會將指定的值加入至文字的開頭。

(/zh-cn/library/edtext(zh-tw).

aspx)。

再用SelectedIndexChanged事件进行测试,结果还是空字符串,原因是:當使用者選

取下拉式清單中的項目,或使用向上鍵和向下鍵,就會自動選取新項目的文字。但是,當您

嘗試取得 SelectedIndexChanged 或 SelectedValueChanged 事件處理常式中的 SelectedText

值時,這個屬性會傳回一個空字串。這是因為在這些事件發生時,先前的 SelectedText 值

已經被清除,而且新的值尚未設定。若要擷取 SelectedIndexChanged 或

SelectedValueChanged 事件處理常式中目前的值,請改用 SelectedItem 屬性。

(/zh-cn/library/edtext(zh-tw).

aspx)。

最后用MouseUp进行测试(以下的测试是DropDownStyle设置为Simple进行的,用

一个文本框显示返回结果),这次返回的就是选定的文本了。选择不同的选项后返回不同选

项的文本,测试成功,按照上面的说法,是因为在鼠标释放后心的值已经设定好了,为了看

看猜测是否正确,在用一个MouseDown事件进行测试,这次点击不同的选项后结果明显不

同,结果是“一闪而过”,因为我们用的是鼠标按下的事件,那么这次按紧鼠标不放,可以看

到显示的结果是上一个选项的值,放开鼠标后显示的结果又是一片空白了,由此可见,新的

值的设定是在鼠标按下之后,放开之前设定的,由于无法看到源代码,所以这里仅仅是猜测

而已。

Text,这个属性返回是我们选定的项的文本,如果想要获取的是选中的项的文本的话

最好使用这个属性。

C# ComboBox基本用法

2011年3月2日評論發表評論

新增Item

view sourceprint?

1

("

1");

項目

移除一個Item

view sourceprint?

1 ("項目1");

2

At(index)

;

移除全部Item

view sourceprint?

1

()

;

設定選取項目

view sourceprint?

edIndex

1

index;

2

=

edItem ="項目

1";

查看MSDN可以看到選取項目時,有下列幾個相關的屬性:

 SelectedIndex:取得或設定目前選取項目的索引。 (覆寫

edIndex。)

SelectedItem:取得或設定目前在 ComboBox 中選取的項目。

SelectedValue:取得或設定 ValueMember 屬性指定的成員屬性值。 (繼承自

ListControl)。

 SelectedText:取得或設定在 ComboBox 可編輯部分中選取的文字。

SelectedText一般較少用到,相當於選取的文字,但在觸發SelectedIndexChanged事

件時會被清空,所以如果在SelectedIndexChanged事件中抓取SelectedText的值都會

是空值

如果想要選取指定項目時可以獲取對應的值時,就要利用SelectedValue屬性