ComboBo有幾個不同的屬性用來獲取當(dāng)前選取的選項_第1頁
ComboBo有幾個不同的屬性用來獲取當(dāng)前選取的選項_第2頁
ComboBo有幾個不同的屬性用來獲取當(dāng)前選取的選項_第3頁
ComboBo有幾個不同的屬性用來獲取當(dāng)前選取的選項_第4頁
ComboBo有幾個不同的屬性用來獲取當(dāng)前選取的選項_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

ComboBox有幾個不同的屬性用來獲取當(dāng)前選取的選項:ComboBoxl.Text、ComboBoxl.SelectedIndex、ComboBoxl.SelectedItem、ComboBoxl.SelectedText、ComboBoxl.SelectedVaiue。SelectedIndex獲取的是選中項的索引,從0開始;SelectedItem獲取的是選中項本身,這里返回的Object類型的一個對象,不一定是選中項的文本。比如現(xiàn)在我們將ComboBox綁定到一個DataReader上,如果我們使用SelectedItem.ToString()的話,返回的是:System.Data.DataRowView,這表明返回的是一個System.Data.DataRowView的對象,然后轉(zhuǎn)換為Object返回。SelectedVilue獲取或設(shè)置由VilueMember屬性指定的成員屬性的值(MSDN)。即是說要綁定了數(shù)據(jù)源之后才能使用這個屬性。SelectedText獲取或設(shè)置ComboBox的可編輯部分中選定的文本(MSDN)。為了測試這個屬性,我們使用一個click進行測試,返回的是一個空字符串,關(guān)于這個原因,MSDN的解釋是:當(dāng)下拉式方塊失去焦點時,選取範(fàn)圍點就會移至文字的開頭,而任何原本選取的文字就會變成未選取狀態(tài)。在這個範(fàn)例中,取得SelectedText屬性就會擷取空字串,而設(shè)定SelectedText屬性就會將指定的值加入至文字的開頭。(/zh-cn/library/bobox.selectedtext(zh-tw).aspx))再用SelectedIndexChanged事件進行測試,結(jié)果還是空字符串,原因是:當(dāng)使用者選取下拉式清單中的項目,或使用向上鍵和向下鍵,就會自動選取新項目的文字。但是,當(dāng)您嘗試取得SelectedIndexChanged或SelectedValueChanged事件處理常式中的SelectedText值時,這個屬性會傳回一個空字串。這是因為在這些事件發(fā)生時,先前的SelectedText值已經(jīng)被清除,而且新的值尚未設(shè)定。若要擷取SelectedIndexChanged或SelectedValueChanged事件處理常式中目前的值,請改用SelectedItem屬性。(/zh-cn/library/bobox.selectedtext(zh-tw).aspx))最后用MouseUp進行測試(以下的測試是DropDownStyle設(shè)置為Simple進行的,用一個文本框顯示返回結(jié)果),這次返回的就是選定的文本了。選擇不同的選項后返回不同選項的文本,測試成功,按照上面的說法,是因為在鼠標(biāo)釋放后心的值已經(jīng)設(shè)定好了,為了看看猜測是否正確,在用一個MouseDown事件進行測試,這次點擊不同的選項后結(jié)果明顯不同,結(jié)果是“一閃而過”,因為我們用的是鼠標(biāo)按下的事件,那么這次按緊鼠標(biāo)不放,可以看到顯示的結(jié)果是上一個選項的值,放開鼠標(biāo)后顯示的結(jié)果又是一片空白了,由此可見,新的值的設(shè)定是在鼠標(biāo)按下之后,放開之前設(shè)定的,由于無法看到源代碼,所以這里僅僅是猜測而已。Text,這個屬性返回是我們選定的項的文本,如果想要獲取的是選中的項的文本的話最好使用這個屬性。C#ComboBoX^本用法2011年3月2日評論發(fā)表評論新增Itemviewsourceprint?comboBoxl.Items.Add(”項目、1");移除一個Itemviewsourceprint?comboBox1.Items.Remove(”項目1");comboBox1.Items.RemoveAt(index);移除全部Itemviewsourceprint?1comboBox1.Items.Clear();設(shè)定選取項目viewsourceprint?comboBox1.SelectedIndex =1index;comboBox1.SelectedItem="項目1";查看MSDN可以看到選取項目時,有下列幾個相關(guān)的屬性:Selected】ndex:取得或設(shè)定目前選取項目的索引。(覆寫ListControl.SelectedIndex。)SelectedItem:取得或設(shè)定目前在ComboBox中選取的項目。SelectedValue:取得或設(shè)定ValueMember屬性指定的成員屬性值。(繼承自ListControl)。SelectedText:取得或設(shè)定在ComboBox可編輯部分中選取的文字。SelectedText一般較少用到,相當(dāng)於選取的文字,但在觸發(fā)SelectedIndexChanged事件時會被清空,所以如果在SelectedIndexChanged事件中抓取SelectedText的值都會是空值如果想要選取指定項目時可以獲取對應(yīng)的值時,就要利用SelectedValue屬性

010203040506070809101112131415161718SelectedValue不能直接使用,需設(shè)定ValueMember才能使用,要設(shè)定ValueMember首先要先自行定義一個類別,這類別裡要有2個屬性,用來對應(yīng)到DisplayMember和ValueMemberviewsourceprint?publicclassComboItem{privatestring_displayText;privateint_value;publicComboItem(stringtext,intvalue){=text;this._displayTextthis._value=value;}publicstringDisplayText{get{return_displayText;}}publicintvalue{get{return_value;}}}接者引入System.Collections並載入宣告一個ArrayList,並新增Comboitem至該ArrayList

viewsourceprint?1212345=newArrayList();for(inti=0;i<10;i++){comboItemArray.Add(newComboItem(” 項 目"+i.ToString(),i));}最後將ComboBox的DataSource設(shè)為comboItemArray,DisplayMember設(shè)為DisplayText,ValueMember設(shè)為Value即可viewsourceprint?comboBox.DataSource=comboItemArray;comboBox.DisplayMember="DisplayText";comboBox.ValueMember="Value";如此就可以用SelectedValue來取得選取項目對應(yīng)的值viewsourceprint?label.Text="SelectedValue:"+comboBox.SelectedValue1+"\n\r";而此時SelectedItem所取得的值為一個Object,如果要對其作操作,需先轉(zhuǎn)型成ComboItemviewsourceprint?1label.Text = ((ComboItem)comboBox.SelectedItem).DisplayText;範(fàn)例完整程式碼:viewsourceprint?01usingSystem;usingSystem.Collections.Gener02ic;03usingSystem.ComponentModel;04usingSystem.Data;usingSystem.Drawing05;06usingSystem.Linq;usingSystem.Text07;08usingSystem.Windows.Forms;

0910111213141516171819202122232425262728293031323334usingSystem.Collections;namespaceWinFormTest{publicpartialclassForm1:Form{publicForm1(){InitializeComponent();for(inti=0;i10;i++){comboBox1.Items.Add("ABC"+i.ToString());}comboBox1.SelectedIndex=0;ArrayList comboItemArray=newArrayList();for(inti=0;i10;i++){comboItemArray.Add(newComboItem("ABC"+i.ToString(),(1000+i)));}comboBox2.DataSource =comboItemArray;comboBox2.DisplayMember="DisplayText";comboBox2.ValueMember

="Value";}privatevoidcomboBox1_SelectedIndexChanged(objectsender,EventArgse){TOC\o"1-5"\h\zlabel1.Text ="SelectedIndex :comboBox1.SelectedIndex.ToString()+"\n\r"+"SelectedText : "+comboBox1.SelectedText+"\n\r"+"SelectedValue : "+comboBox1.SelectedValue+"\n\r"+"SelectedItem : "+comboBox1.SelectedItem+"\n\r";}privatevoidcomboBox2_SelectedIndexChanged(objectsender,EventArgse){TOC\o"1-5"\h\zlabel2.Text ="SelectedIndex :comboBox2.SelectedIndex.ToString()+"\n\r"+"SelectedText : "+comboBox2.SelectedText+"\n\r"+"SelectedValue : "+comboBox2.SelectedValue+"\n\r"+"SelectedItem :((ComboItem)comboBox2.SelectedItem).DisplayText+"\n\r";}privatevoidtimer1_Tick(objectsender,EventArgse){label3.Text="";label3.Text ="CB1 SelectedText: "+353637383940414243444546474849505152535455565758"+"+"+comboBox1.SelectedText+"\n\r""+"+"++"CB2SelectedText:596061626364656667686970717273747576777879808182comboB

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論