C# 如何在ComboBox输入文字改变时,触发事件?

1、了解C#中的预约义事件处理机制框架

    在写代码前咱们先来熟悉.net框架中和事件有关的类和委托,了解C#中预约义事件的处理。spa

    EventArgs是包含事件数据的类的基类,用于传递事件的细节。.net

    EventHandler是一个委托声明以下code

         public delegate void EventHandler( object sender , EventArgs e )对象

注意这里的参数,前者是一个对象(其实这里传递的是对象的引用,若是是button1的click事件则sender就是button1),后面是包含事件数据的类的基类。blog

方案:

咱们建立一个cmbChanged方法,传递sender。而后在combobox触发不一样事件的时候均可以引用这个方法。事件

以下代码,无论哪一个事件触发,咱们将combobox选择展现的内容都赋给一个参数:cmbMarkNumText 。get

 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的小用法string

浅析C#的事件处理和自定义事件[object sender , EventArgs e]class

Combobox赋值拓展: Combobox设置 DataSource 后,其 Text 会自动变为源中首项,而再也不是原值。