尽管适当 header,用户窗体仍未初始化
Userform not initializating despite proper header
我正在尝试编写一个在初始化时加载控件的新用户窗体。
无论出于何种原因,我编写的测试模块在 运行 时没有在用户窗体中加载任何内容,尽管用户窗体本身确实出现了。
模块代码:
Sub test()
Dim check As New UserForm1
Load check
check.Show
End Sub
用户表单代码:
Private Sub UserForm_Initialize()
Dim submit As MSForms.CommandButton
Set submit = UserForm1.Controls.Add("Forms.CommandButton.1", "Submit")
With submit
.Caption = "Submit"
End With
End Sub
当我 运行 模块时没有按钮出现,但是,当我 运行 用户窗体代码直接正确初始化时。有什么建议吗?
Set submit = UserForm1.Controls.Add("Forms.CommandButton.1", "Submit")
那个 是 添加按钮...只是不在 check
实例上。
参见UserForm1.Show;通过在 UserForm1
模块中引用 UserForm1
,您已经引用了该表单的 默认实例 ,它可能是也可能不是当前正在初始化的实例。
这应该可以解决问题:
Set submit = Me.Controls.Add("Forms.CommandButton.1", "Submit")
UserForm
模块是一个 class,具有可视化设计器组件和 VB_PredeclaredId
属性值设置为 True
。 predeclared 实例是隐藏的 VB_PredeclaredId
属性值的结果,根据语言规范,它的名称与 class 本身的名称相匹配,即 UserForm1
.通过使用 Me
作为限定符而不是 UserForm1
,您指的是 当前 运行 的任何实例,而不是 class'默认实例.
避免在表单的 code-behind.
中引用默认实例
我正在尝试编写一个在初始化时加载控件的新用户窗体。
无论出于何种原因,我编写的测试模块在 运行 时没有在用户窗体中加载任何内容,尽管用户窗体本身确实出现了。
模块代码:
Sub test()
Dim check As New UserForm1
Load check
check.Show
End Sub
用户表单代码:
Private Sub UserForm_Initialize()
Dim submit As MSForms.CommandButton
Set submit = UserForm1.Controls.Add("Forms.CommandButton.1", "Submit")
With submit
.Caption = "Submit"
End With
End Sub
当我 运行 模块时没有按钮出现,但是,当我 运行 用户窗体代码直接正确初始化时。有什么建议吗?
Set submit = UserForm1.Controls.Add("Forms.CommandButton.1", "Submit")
那个 是 添加按钮...只是不在 check
实例上。
参见UserForm1.Show;通过在 UserForm1
模块中引用 UserForm1
,您已经引用了该表单的 默认实例 ,它可能是也可能不是当前正在初始化的实例。
这应该可以解决问题:
Set submit = Me.Controls.Add("Forms.CommandButton.1", "Submit")
UserForm
模块是一个 class,具有可视化设计器组件和 VB_PredeclaredId
属性值设置为 True
。 predeclared 实例是隐藏的 VB_PredeclaredId
属性值的结果,根据语言规范,它的名称与 class 本身的名称相匹配,即 UserForm1
.通过使用 Me
作为限定符而不是 UserForm1
,您指的是 当前 运行 的任何实例,而不是 class'默认实例.
避免在表单的 code-behind.
中引用默认实例