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屬性


发布评论