据我所知,如你所说,如果所有的形式从基本形式继承,他们都有共同的组成部分。所以你可以创建一个像波纹管一样的模块,并把这个基本形式的方法。
'This Module you will put all methods from the base form
Module ProcAuxiliar
Public Sub BaseForm_Sum (ByVal Textbox1 As String, ByVal Textbox2 As String)
Dim Val1 As Int32 = Convert.ToInt32(Textbox1)
Dim Val2 As Int32 = Convert.ToInt32(Textbox2)
MsgBox(Convert.ToString(Val1 + Val2)
End Sub
Public Sub BaseForm_decrease (ByVal Textbox1 As String, ByVal Textbox2 As String)
Dim Val1 As Int32 = Convert.ToInt32(Textbox1)
Dim Val2 As Int32 = Convert.ToInt32(Textbox2)
MsgBox(Convert.ToString(Val1 - Val2)
End Sub
End Module
在子窗体只需要调用从模块
'Child Form 1
Sub BtSumClick(ByVal sender As Object, ByVal e As EventArgs) Handles btSum.Click
ProcAuxiliar.BaseForm_Sum(Textbox1.Text, Textbox2.Text)
End Sub
'Child Form 2
Sub BtDecreaseClick(ByVal sender As Object, ByVal e As EventArgs) Handles BtDecrease.Click
ProcAuxiliar.BaseForm_decrease(Textbox1.Text, Textbox2.Text)
End Sub
Overrideing在儿童基本形式的方法,并调用音素表示方法有更多代码的方法:
protected override sub Children_Load(sender As Object, e As EventArgs) Handles MyBase.Load
MyBase.Children_Load(sender, e)
MyBase.BaseForm_Load(sender, e)
End Sub
在基地创建一个方法相当简单:'protected sealed void Callme(){/ * ... yada yada * /}'但是什么时候该在哪里调用? – Fildor
这就是问题所在。对于我来说,有太多的子类复制+粘贴基本表单调用到每一个。我需要一个自动化的函数或语法来强制所有表单在输入时报告他们的名字。 – Excavator
嗯,我被“进入时”停下 - 你认为“进入”了什么?创建?显示? ...当然,你可以在BaseClass的构造函数中添加一些反射报告,它会被每个后代自动调用...但是我想你需要更多的东西来表示何时调用“Form.Show()”。 – Fildor