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