对比第一次敲的机房收费系统,会发现很多窗体的界面基本相同,部分功能甚至基本相似。比如说操作员菜单下的充值和退卡这两个窗体:
这样如果一个一个窗体画出来,就做了很多重复的工作。VB.NET和C#都是完全面向对象的语言,而面向对象的三大特性是封装、继承、多态,出了在代码、功能上来体现,在设计窗体时是不是也可以用到呢?答案当然是YES!
如果一个程序中有多个界面相似,就可以考虑通过继承来实现,先建立一个父窗体,然后让子窗体来继承它,相同的代码就可以写在父窗体中,各自的功能分别写在不同的子窗体中,实现想要的功能。
具体实现过程如下:
1.添加普通的Windows窗体,建立模板。(建好后需要重新生成解决方案)
3.选择“添加”按钮,在弹出的窗体中选择要继承的父窗体,点确定即可。(如果第1步没有重新生成解决方案,那么在这里父窗体就不会显示出来。)
4.继承来的充值子窗体:
基本上已经完成了,但是会发现继承来的子窗体中的控件都是锁定的,如果想要通过这些控件添加一些新的功能,就需要将父窗体中的控件Modifiers属性设置为Public,这样就可以了。
当我们做了很多重复的事情时,就应该停下来思考一下,有没有更好的方法。思想是行动的先导,首先要思考,然后再行动。