C# 如何在ComboBox輸入文字改變時,觸發事件?


一、了解C#中的預定義事件處理機制

    在寫代碼前我們先來熟悉.net框架中和事件有關的類和委托,了解C#中預定義事件的處理。

    EventArgs是包含事件數據的類的基類,用於傳遞事件的細節。

    EventHandler是一個委托聲明如下

         public delegate void EventHandler( object sender , EventArgs e )

注意這里的參數,前者是一個對象(其實這里傳遞的是對象的引用,如果是button1的click事件則sender就是button1),后面是包含事件數據的類的基類。

方案:

我們創建一個cmbChanged方法,傳遞sender。然后在combobox觸發不同事件的時候都可以引用這個方法。

如下代碼,不管哪個事件觸發,我們將combobox選擇展示的內容都賦給一個參數:cmbMarkNumText 。

 1   private void cmbMarkNum_SelectedIndexChanged(object sender, EventArgs e)//選擇下拉選項時
 2         {
 3             cmbMarkNumText = cmbChanged(sender);
 4         }
 5         private void cmbMarkNum_TextUpdate(object sender, EventArgs e)//combobox輸入文字改變時
 6         {
 7             cmbMarkNumText = cmbChanged(sender);
 8         }
 9         private string cmbChanged(object sender)
10         {
11             string rtxt;
12             ComboBox cmb = (ComboBox)sender;//強制吧sender轉換為ComboBox類型賦值給cmb. 
13             return rtxt = cmb.Text;
14         }

 

C# 怎么實現ComboBox“只能選擇,不能修改”的功能

DropDownStyle 屬性設置為 DropDownList.
#Simple 簡單的下拉列表框(始終顯示列表)。
#DropDown 可以編輯,與有下拉列表。默認。
#DropDownList 只有下拉列表,不能編輯。

其他閱讀:C#事件中sender的小用法

淺析C#的事件處理和自定義事件[object sender , EventArgs e]

Combobox賦值拓展: Combobox設置 DataSource 后,其 Text 會自動變為源中首項,而不再是原值。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM