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

上传人:daj****de2 文档编号:140181930 上传时间:2022-08-23 格式:DOCX 页数:8 大小:19.84KB
收藏 版权申诉 举报 下载
ComboBox有几个不同的属性用来获取当前选取的选项_第1页
第1页 / 共8页
ComboBox有几个不同的属性用来获取当前选取的选项_第2页
第2页 / 共8页
ComboBox有几个不同的属性用来获取当前选取的选项_第3页
第3页 / 共8页
资源描述:

《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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!