组合查询时,三个窗体基本上是一样的,所以用到设计模式——模板方法,其中的关键就是继承,
1、构建一个父类窗体,此窗体是这三个窗体的父窗体,该窗体把公共的控件全部设置好。
2、创建子类窗体,右击项目——添加——继承的窗体,如下图
建立的窗体如下图所示:
问题随之而来,控件不能用,那相对控件的按钮的事件也没有办法实现。从网上查了好多资料,总结:早期版本的VS继承的窗体控件是可以用的,现在的就算把窗体的Modifiers的属性值改为public,也是不行的(个人分析所得,如果你有什么方法可以告诉我)。
1、 父窗体中把方法中的private变为PublicOverridable,这样子窗体就可以重写这个方法,
PublicOverrideableSubbtnOK_Click(senderAsObject,eAsEventArgs)HandlesbtnOK.Click
EndSub
子类窗体中应该是这样写的,关键字为Overrides
PublicOverrides
//方法的实现
Sub
2、如果说此事件或方法不能重写怎么办呢?这也很简单。
父类窗体中:
Private
btnOKClick() '在子类窗体中重写此方法就行
Sub
PublicOverridableSubbtnOKClick()
子类窗体中
PublicOverridesSubbtnOKClick()
//方法的实现
在这其中还出现一个问题,那就是”没有包含要从继承的组件的已生成程序集“。如下图
这是什么导致的呢?
原文链接:https://www.f2er.com/vb/257229.html