我一个Form上有很多的控件,我现在需要对这个Form上所有的控件的Change事件进行监控,当控件的值或者状态被改变后我要能进行一些处理。
除了一个一个控件的change事件里面判断之外有没有其他比较简单的方法

解决方案 »

  1.   

    所有的控件的change事件绑定到一个方法上
      

  2.   

    同楼上
    所有的控件的change事件绑定到一个方法上
    如果需要控件的某些属性,就把sender强制转换成要用的类型,通用属性可以转换成Control
      

  3.   

    如果在你的项目里使用的是自定义的或是从标准控件继承的控件,那么你最好在基类里加以处理。比如用FindForm()方法找到所在的窗体以操作所在窗体的是否改变属性。这样可能会好些。
      

  4.   

    分组来做,
    比如TextBox
    private void AttachEvent(Control ctl)
    {
        for(Control subCtl in ctl.Controls)
        {
            if(subCtl.Controls.Count>0)
            {
                 AttachEvent(subCtl);
            }
            if(subCtl.getType()==typeof(TextBox))
            {
                TextBox temp=subCtl as TextBox;
                temp.TextChanged+=....;
            }
    }或者抽象出一个接口来,
    然后继承需要的控件并各自实现该接口来达到统一控制.