由于我是从VFP开发转往C#开发的,所以常常想在C#理去实现VFP中的一些写法,例如这次..
在VFP中,我们的为了适应开发的多变性,所以我们开发了很多继承于VFP控件的类控件,把很多常用的处理代码,写在了类控件中,那么只要把类控件加到Form中,就已经拥有样关功能了....如果某个事件不想继承类的,只要隐藏一下,就可以实现了,例如,我有一个类控件UTextBox是继承TextBox开发的,并且我改写了他的Vaild 和 keypress事件,让它在vaild时弹出messagebox("a"),keypress时弹出messagebox("b"). 那我只要在Form中加入类控件UTextBox实例,在不加任何代码时,就已经拥有相关功能,如果我想在Keypress时,弹出"b"后,再弹出"c",只要加一句UtextBox::Vaild() &&继承类,再加上messagebox("c"),就能实现,如果不想要弹出b,只接弹c,只要不继承类的Vaild,(也就是不加UtextBox::Vaild() )就可以了.
在C#中,也有类似的功能,但并不能完全实现.
C#中要继承基类控件,重写事件,如需如下:
这样就可以重写TextBox形成新控件UctextBox
build项目后,在工具箱中就会有一个新的控件UctextBox,拖

本文探讨了从VFP转向C#开发时,如何理解和处理C#控件事件重写的问题。通过一个UctextBox类控件的例子,解释了在C#中重写TextBox控件的TextChanged事件时,为何实例方法会先于类方法执行,这与事件委托器的工作原理有关。在C#中,无法像VFP那样灵活地在实例中选择是否继承类的事件。
最低0.47元/天 解锁文章
925

被折叠的 条评论
为什么被折叠?



