0
您好我想在運行時複製現有表單,以便可以多次使用。有喜歡VB2008在運行時創建重複的現有表單
Sub loadForm()
Dim childForm As New myForm '<---
With childForm
.TopLevel = False
.StartPosition = FormStartPosition.CenterScreen
.Top = 199
.BringToFront()
Panel1.Controls.Add(childForm)
.Show()
End With
End Sub
單的方式,但我想這種形式應該是一式兩份參考我想
Sub LoadForm(ByVal childForm As Form)
'where childForm can be any myform1/mysale/mypurchase etc.
With childForm
.TopLevel = False
.StartPosition = FormStartPosition.CenterScreen
.Top = 199
.BringToFront()
Panel1.Controls.Add(childForm)
.Show()
End With
End Sub
在那裏我打電話
LoadForm(myform1)
LoadForm(mysale)
此不重複我也試着創建
Dim newChildForm as new childForm ' its give error 1 Type 'childForm' not defined
的Visual Basic允許你[作爲變量使用的一種形式的類型名稱](http://stackoverflow.com/q/6048889/11683),神奇地擁有該表單的隱式創建的實例。你不應該使用這個功能。使用'New'總是創建表單的實例,並且絕對不要使用其類型名稱引用實例。如果這一點不能解決您的問題,請澄清。 – GSerg
在這些片段中沒有明顯的「重複」嘗試。無論如何,你無法克隆表單對象。你需要'新建myForm1'來創建另一個實例。這裏最明顯的缺陷是你在同一個位置顯示錶格,你只能看到最上面的一個。改爲使用FlowLayoutPanel。或者選擇一個合適的位置。 –
hans-passant顯示位置是固定的,但我拖動該窗體並調用LoadForm它將重新定位我已經繪製的窗體。 – mortypk