日期:2014-05-19  浏览次数:20951 次

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

------解决方案--------------------
帮LZ顶
------解决方案--------------------
所有的控件的change事件绑定到一个方法上
------解决方案--------------------
同楼上
所有的控件的change事件绑定到一个方法上
如果需要控件的某些属性,就把sender强制转换成要用的类型,通用属性可以转换成Control
------解决方案--------------------
你应对所有的控件都一个个处理。
------解决方案--------------------
如果在你的项目里使用的是自定义的或是从标准控件继承的控件,那么你最好在基类里加以处理。比如用FindForm()方法找到所在的窗体以操作所在窗体的是否改变属性。这样可能会好些。
------解决方案--------------------
分组来做,
比如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+=....;
}
}

或者抽象出一个接口来,
然后继承需要的控件并各自实现该接口来达到统一控制.
------解决方案--------------------
学习
------解决方案--------------------
学习,分类处理,每类绑定到同一方法上.