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 会自动变为源中首项,而不再是原值。

转载于:https://www.cnblogs.com/watermarks/p/8483232.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值