【发布时间】:2018-07-17 09:05:54
【问题描述】:
我想在我的应用程序中生成一堆 MultiPage 并动态创建新页面,但我收到运行时错误“-2147417848 (80010108)”:自动化错误调用的对象已与其客户端断开连接。
重现步骤
在名为 TestClass 的类模块中:
Public WithEvents TestMultiPage As MsForms.MultiPage
Sub createPage()
TestMultiPage.Add
End Sub
在一个名为 TestForm 的用户窗体中:
Dim TestInstances as New Collection
Private Sub UserForm_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X as Single, ByVal Y as Single)
If Button = fmButtonRight Then
Dim TestInstance as New TestClass
Set TestInstance.TestMultiPage = Me.Controls.Add("Forms.MultiPage.1")
TestInstances.Add TestInstance
End If
End Sub
Private Sub UserForm_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim TestInstance As TestClass: Set TestInstance = TestInstances(1)
TestInstance.createPage
End Sub
当我右键单击用户窗体两次时,我得到两个多页。然后我双击用户窗体,期望第一个 MultiPage 有一个新页面。但是我在TestInstance.createPage -> TestMultiPage.Add 遇到了自动化错误,即使所有变量似乎都从Locals 窗口中出现。
我错过了什么?
结论
按照@GSerg 的回答,我想MultiPage 没有办法做到这一点。 相反,我必须改用 TabStrip 并模拟 MultiPage 的其他行为。
只是为了添加一些上下文,我试图创建一个带有窗口和选项卡的类似浏览器的 UI(底部的 TabStrip 代表不同的窗口,每个窗口对应于具有多个选项卡的 MultiPage)。切换回之前的 MultiPage 并创建新标签时,我遇到了一个晦涩的错误。
【问题讨论】:
标签: excel vba vb6 runtime-error excel-automation