據我所知,如你所說,如果所有的形式從基本形式繼承,他們都有共同的組成部分。所以你可以創建一個像波紋管一樣的模塊,並把這個基本形式的方法。
'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