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

一个超难的C#问题,高手请进啦!
偶编写一个类,在这个类中,有一个Control类型的属性,可设置为用户的一个文本框或组合框等
        现在想做的功能是:在这个Control触发Validating事件之前,先执行我的程序,而且还可以决定是否继续执行Validating事件
 
        那么,其实就重写Control的OnValidating方法就行了,但关键问题是,我的类不能继承该Control,这个Control只是我类中的一个属性罢了

      怎么办??问题总结为:不继承一个类,如何重写一个类的方法?

------解决方案--------------------
设计不合理.

建议使用嵌套类.

------解决方案--------------------
把Control类组合到你的类中不行?
------解决方案--------------------
关注
------解决方案--------------------
重写你的Control, 再把它丢到你的类中
------解决方案--------------------
如果不能改变你的结果,那就改变你的思路。
------解决方案--------------------
不继承也能重写?看来我的C#知识还有待提高。
------解决方案--------------------
楼主的设计上 存在问题
要重写类的函数
重载 是必须的
------解决方案--------------------
思路有问题

1、不重写不行吗?
2、不把Control做为一个属性,而做为一个UserControl不行吗?
------解决方案--------------------
为这个Control成员的Validating事件添加一个自定义的委托方法例如

this.textBox1.Validating+=new CancelEventHandler(textBox1_Validating)
------解决方案--------------------
明白LZ的意思,看看我的代码,Control就是你想要的属性,_yourControl_Validating方法就是你想要的方法