我已经尝试找到答案,但找不到回答这个问题的答案。
我有一个包含两个面板的主表格。在主表单中,我正在尝试编写一个子例程来处理将表单加载到其中一个面板中。
一个面板始终包含相同的表单,适用于此的代码为:
'Configure Toolbar Import
Dim toolbarHandler As _pnl_header = New _pnl_header()
toolbarHandler.Size = pnlHeader.Size
toolbarHandler.TopLevel = False
pnlHeader.Controls.Add(toolbarHandler)
toolbarHandler.Show()
该面板按预期成功显示了_pnl_header形式。
第二个面板将根据用户输入更改显示的形式,因此我不想为每个可能性编写上述代码,而是希望有一个Public Sub来处理它们...
我开始编写一个子线:
Public Sub LoadContentPanel(WhichForm As Form)
Try
Dim contentHandler As WhichForm = New WhichForm()
contentHandler.Size = pnlContent.Size
contentHandler.TopLevel = False
pnlContent.Controls.Add(contentHandler)
contentHandler.Show()
Catch ex As Exception
MsgBox("Unable to Handle Content Panel Change. Error: " & ex.Message, vbOKOnly + vbCritical, "Load Error")
End Try
End Sub
然而,由于' WhichForm'没有定义 - 如何最好地纠正这个?还是有更好的选择?
谢谢
答案 0 :(得分:0)
如果不进入你正在做的事情,我可以解释错误的来源。
在此声明WhichForm
Form
Public Sub LoadContentPanel(WhichForm As Form)
. . . . .
下一个申报行中的代码不正确。 WhichForm
是变量而不是类型。因此
Dim contentHandler As WhichForm = New WhichForm()
在As WhichForm
无效。因为在As
之后你需要一个类型名称。如果你做了
Dim contentHandler As Form = New Form()
它会起作用。
您似乎只需删除Dim contentHandler As WhichForm...
并将参数WhichForm
重命名为contentHandler
。