要求... 我有一个巨大的 VB6 项目,里面有很多表格。一个父 MDI 窗体和所有其他窗体通过不同的菜单操作在其中打开。
我需要拆分这个项目,比如说把主窗体放在那里,把其他组相关的窗体提取到自己的项目中。
让我们以一个新项目为例...... 主要项目:
prjModule1
prjModule2
如何实现,每个项目的项目类型应该是什么?我理解的主要应该是Standard Exe,但是另外两个呢?我需要 exe 还是 dll?
我尝试了以下
标准Exe工程:MainProject,带一个MDI父窗体 DLL 项目 child1:
Private Sub mnuModule1_Click()
Dim cls As New prjModule1.Class1
cls.ShowForm
End Sub
这是 ShowForm 子
Public Sub ShowForm()
Dim localForm As New frmModule1Main
localForm.Show
End Sub
当我选择 Module1 菜单项时,表单 prjModule1.frmModule1Main 按预期打开。 但不是主 MDI 窗体的子窗体。如果我将 frmModule1Main 的 MDIChild 属性更改为 True。我收到错误消息“没有可加载的 MDI 表单”
我错过了什么,我怎么能告诉子窗体谁是你的 MDI 父级?它已经加载了吗?
正如评论中指出的那样,您需要将表单转换为 UserControl,并将这些 UserControl 嵌入到 ActiveX Control 类型的项目中。我无法让任何其他组合工作。
代码片段中,frmChild是一个没有控件的MDIChild Form。当您想显示另一个项目中包含的“表单”时,您可以将该“表单”动态添加到 frmChild:
Private Sub ShowForm()
Dim f As frmChild
Set f = New frmChild
Dim uc As UserControl3
Set uc = f.Controls.Add("Project3.UserControl3", "UC3", f)
uc.Visible = True
f.Show
End Sub