问题描述
一个winform窗口上我创建一个textBox和一个button,我能添加textBox的Validating/Validated事件响应来控制用户的输入,这个我能理解没有问题。但是,winform大窗口本身看起来也能添加Validating/Validated事件响应,这个我感觉不到有什么作用啊,winform上如果有多个控件的话,那到底Validate谁呢?换句话说,validate是一个动词,那么在winform上,这个动词的确切宾语到底是哪个?
解决方案
解决方案二:
肯定有参数sender,这就是触发事件的那个控件
解决方案三:
.netframework是开源的,同时也有那么多工具和资源可以看到源代码,你应该首先学习.net源代码。不要靠csdn来回答你这类问题。Control的Validate操作是遍历Control.Controls集合,来递归计算的。
解决方案四:
引用2楼sp1234的回复:
.netframework是开源的,同时也有那么多工具和资源可以看到源代码,你应该首先学习.net源代码。不要靠csdn来回答你这类问题。Control的Validate操作是遍历Control.Controls集合,来递归计算的。
我做了个简单的试验,如下图所示,一个winform上面有两个button,两个textBox我实现了Form1和textBox1的Validating事件响应,代码如下:privatevoidtextBox1_Validating(objectsender,CancelEventArgse){Debug.WriteLine(e.ToString());}privatevoidForm1_Validating(objectsender,CancelEventArgse){Debug.WriteLine(e.ToString());}
很奇怪的是,textBox1可以响应Validating事件,也就是当我在textBox1里面输入了一些字母,然后点击Form1上面其他任何一个控件,都会触发textBox1_Validating函数。但是,Form1_Validating()却无论我怎么操作,看起来都不会被调用。这到底是为什么呢?还请高人指点一下!
解决方案五:
自己顶一下!