C# 中使用同一个方法来触发相同类型控件的特定事件(如textbox的Text_Changed)以节省代码...

我们可能想在某个panel里所有textbox都通过一个方法把它触发,就不必有重复的代码,
在这 一系列的textbox,任意一个textbox内容改变时,都需要捕捉到,可能还需要做出相应的处理,
(例如,有TextBox1,TextBox2,TextBox3,TextBox4,TextBox5,TextSum,TextSum 用来合计前面5项输入的值,而且要求值改变时,累计值也跟着改变,如果不使用 UpdatePanel或者 其他的Ajax方法实现异步更新,就简单的通过 Text_changed事件来实现)

 

1,最简单的理解是

    让所有的textbox 响应同一个 textbox的textchange事件。

    首先编辑某一个TextBox的Text_changed事件(如TextBox1_TextChanged),其他的TextBox的Text_Changed都指定为该事件。

 

2, 编辑需要执行的 TextChanged事件。

   然后遍历需要执行该事件的控件,发现有人写了类似下面的代码,好像不对,修改后测试也是有问题,等有空再搞清楚这个了

   foreach (Control cc in this.Controls)
            {
               
if (cc is TextBox)
                {

//这句明显是错的,cc实例化后,才会有TextChanged 事件
                   
cc.TextChanged += newEventHandler(cc_TextChanged);
                 }                
            }

 

或者

foreach (Control c in this.Controls)

Type tTemp;
tTemp = c.GetType();
switch (tTemp.ToString().ToLower())

//这里怎么写成 forms,web程序里的 TextBox 是 System.Web.UI.WebControls.TextBox
case "system.windows.forms.textbox":

c.TextChanged +=new ……


           

转载于:https://www.cnblogs.com/wtao/archive/2010/11/22/1884584.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值