ComboBox有几个不同的属性用来获取当前选取的选项
《ComboBox有几个不同的属性用来获取当前选取的选项》由会员分享,可在线阅读,更多相关《ComboBox有几个不同的属性用来获取当前选取的选项(8页珍藏版)》请在装配图网上搜索。
1、ComboBox有几个不同的属性用来获取当前选取的选项:ComboBoxl.Text、 ComboBoxl.SelectedIndex 、 ComboBoxl.SelectedItem 、 ComboBoxl.SelectedText 、 ComboBoxl.SelectedVaiue。SelectedIndex获取的是选中项的索引,从0开始;SelectedItem获取的是选中项本身,这里返回的Object类型的一个对象,不一定是选 中项的文本。比如现在我们将ComboBox绑定到一个DataReader上,如果我们使用 SelectedItem.ToString()的话,返回的是:Syst
2、em.Data.DataRowView,这表明返回的是一个 System.Data.DataRowView 的对象,然后转换为 Object 返回。SelectedVilue获取或设置由VilueMember属性指定的成员属性的值(MSDN)。即是 说要绑定了数据源之后才能使用这个属性。SelectedText获取或设置ComboBox的可编辑部分中选定的文本(MSDN)。为了测 试这个属性,我们使用一个click进行测试,返回的是一个空字符串,关于这个原因,MSDN 的解释是:當下拉式方塊失去焦點時,選取範圍點就會移至文字的開頭,而任何原本選取的 文字就會變成未選取狀態。在這個範例中,取得S
3、electedText屬性就會擷取空字串,而設 定 SelectedText屬性就會將指定的值加入至文字的開頭。( aspx)再用SelectedIndexChanged事件进行测试,结果还是空字符串,原因是:當使用者選 取下拉式清單中的項目,或使用向上鍵和向下鍵,就會自動選取新項目的文字。但是,當您 嘗試取得 SelectedIndexChanged 或 SelectedValueChanged 事件處理常式中的 SelectedText 值時,這個屬性會傳回一個空字串。這是因為在這些事件發生時,先前的SelectedText值 已經被清除,而且新的值尚未設定。若要擷取 SelectedIn
4、dexChanged或 SelectedValueChanged事件處理常式中目前的值,請改用 SelectedItem 屬性。( aspx)最后用MouseUp进行测试(以下的测试是DropDownStyle设置为Simple进行的,用 一个文本框显示返回结果),这次返回的就是选定的文本了。选择不同的选项后返回不同选 项的文本,测试成功,按照上面的说法,是因为在鼠标释放后心的值已经设定好了,为了看 看猜测是否正确,在用一个MouseDown事件进行测试,这次点击不同的选项后结果明显不 同,结果是“一闪而过”,因为我们用的是鼠标按下的事件,那么这次按紧鼠标不放,可以看 到显示的结果是上一个选项
5、的值,放开鼠标后显示的结果又是一片空白了,由此可见,新的 值的设定是在鼠标按下之后,放开之前设定的,由于无法看到源代码,所以这里仅仅是猜测 而已。Text,这个属性返回是我们选定的项的文本,如果想要获取的是选中的项的文本的话 最好使用这个属性。C# ComboBoX本用法2011年3月2日評論發表評論新增Itemview sourceprint? comboBoxl.Items.Add(” 項 目1 、1);移除一個Itemview sourceprint?1 comboBox1.I tems.Remove(” 項目 1);2 comboBox1.Items.RemoveAt(index);移
6、除全部Itemview sourceprint?1 comboBox1.Items.Clear();設定選取項目view sourceprint?comboBox1.SelectedIndex=1index;comboBox1.SelectedItem =項目1;查看MSDN可以看到選取項目時,有下列幾個相關的屬性: Selected】ndex :取得或設定目前選取項目的索引。 (覆寫ListControl.SelectedIndex。) SelectedItem:取得或設定目前在ComboBox中選取的項目。 SelectedValue:取得或設定ValueMember屬性指定的成員屬性值。
7、(繼承自 ListC ontr ol)。 SelectedText:取得或設定在ComboBox可編輯部分中選取的文字。SelectedText一般較少用到,相當於選取的文字,但在觸發SelectedIndexChanged事 件時會被清空,所以如果在SelectedIndexChanged事件中抓取SelectedText的值都會 是空值如果想要選取指定項目時可以獲取對應的值時,就要利用SelectedValue屬性010203040506070809101112131415161718SelectedValue不能直接使用,需設定ValueMember才能使用,要設定ValueMember
8、首先要先自行定義一個類別,這類別裡要有2個屬性,用來對應到DisplayMember和ValueMembe rview sourceprint?publicclassComboItemprivatestring_displayText;privateint_value;publicComboItem(stringtext,intval ue)=text;this._displayTextthis._value =value;publicstringDisplayTextgetreturn_displayText; publicintvaluegetreturn_value; 接者引入Syste
9、m.Collections並載入宣告一個ArrayList,並新增Comboitem至該Arr ayListview sourceprint?12345ArrayListcomboItemArray=newArrayList();for(inti = 0; i 10; i+)comboItemArray.Add(newComboItem(”項目+i.ToString(), i );最後將 ComboBox 的 DataSource 設為 comboItemArray, DisplayMember 設為DisplayText, ValueMember設為 Value 即可view sourcep
10、rint?1 comboBox.DataSource = comboItemArray;2 comboBox.DisplayMember=DisplayText;3 comboBox.ValueMember =Value;如此就可以用SelectedValue來取得選取項目對應的值view sourceprint?label.Text =SelectedValue : + comboBox.SelectedValue1+nr;而此時SelectedItem所取得的值為一個Object,如果要對其作操作,需先轉型成ComboItemview sourceprint?1 label.Text=(C
11、omboItem)comboBox.SelectedItem).DisplayText;範例完整程式碼:view sourceprint?01 usingSystem;usingSystem.Collections.Gener02 ic;03 usingSystem.ComponentModel;04 usingSystem.Data;usingSystem.Drawing05;06 usingSystem.Linq;usingSystem.Text07;08 usingSystem.Windows.Forms;09101112131415161718192021222324252627282
12、93031323334usingSystem.Collections;namespaceWinFormTestpublicpartialclassForm1 :FormpublicForm1()InitializeComponent();for(in ti = 0;i 10; i+)comboBox1.Items.Add(ABC+i.ToString();comboBox1.SelectedIndex = 0;ArrayListcomboItemArray=newArrayList();for(in ti = 0;i 10; i+)comboItemArray.Add(newComboItem
13、(ABC+i.ToString(),(1000+i);comboBox2.DataSource=comboItemArray;comboBox2.DisplayMember=DisplayText;comboBox2.ValueMember=Value;privatevoidcomboBox1_SelectedIndexChanged(objectsender, EventArgs e)label1.Text=SelectedIndex:comboBox1.SelectedIndex.ToString() +nr+SelectedText:+comboBox1.SelectedText +nr
14、+SelectedValue:+comboBox1.SelectedValue +nr+SelectedItem:+comboBox1.SelectedItem +nr;privatevoidcomboBox2_SelectedIndexChanged(objectsender,EventArgs e)label2.Text=SelectedIndex:comboBox2.SelectedIndex.ToString() +nr+SelectedText:+comboBox2.SelectedText +nr+SelectedValue:+comboBox2.SelectedValue +nr
15、+SelectedItem:(ComboItem)comboBox2.SelectedItem).DisplayText +nr;privatevoidtimer1_Tick(objectsender,EventArgs e)label3.Text =;label3.Text=CB1SelectedText:+353637383940414243444546474849505152535455565758+comboBox1.SelectedText +nr+CB2SelectedText:596061626364656667686970717273747576777879808182comboBox2.SelectedText;publicclassComboItemprivatestring_displayText;privateint_value;publicComboItem(stringtext,intvalue )this._displayText = text;this._value=value;publicstringDisplayTextgetreturn_displayText; publicintvalue getreturn_value; 8384
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 化工过程开发导论教学课件
- PXGL05SSGF下的运营管理课件
- (部编版教材)三年级上册《金色的草地》经典ppt课件
- 第二课-展示自己的职业风采课件
- (新课标)高三化学一轮总复习第6章化学反应与能量变化同步测试卷ppt课件
- (新课标)高考数学大一轮复习第一章集合与常用逻辑用语1.1集合ppt课件文
- 第五讲法家思想现代解读课件
- 第二章-人工晶体的生长2122课件
- 第三章学前儿童身体保健教育分析课件
- (部编版)祖父的园子优秀ppt课件
- 第七章老年心理学-课件
- 趣味竞赛—成语猜猜看82张课件
- 化工过程开发与设计-绪论-第1章课件
- 路基路面弯沉试验(贝克曼梁)课件
- (部编版)小学语文一级上册《项链》教学ppt课件