[英]MS Access: instantiating a form within a custom class
我正在尝试从自定义 class 模块 (clsMBox) 中实例化我项目中的现有表单 (frmVisibleForm),并从那里也操作其属性。 我希望能够使用表单中的事件。
我期望发生的事情:
怎么了:
没有什么。 运行测试模块的 function 时,没有显示任何表格,没有错误消息,没有提示,什么也没有发生。这是我第一次在访问中尝试自定义类,所以也许我犯了一些基本错误,但我不明白为什么它不像我想象的那样工作。 感谢任何帮助。
这是我到目前为止的代码:
表格(frmVisibleForm):
Option Compare Database
Option Explicit
Public Event DataInput(InputValue As String)
(目前还没有实际事件)
自定义 Class 模块 (clsMBox):
Option Compare Database
Option Explicit
Dim WithEvents cls_frmVisibleForm As Form_frmVisibleForm
Private Sub InstantiateForm()
Set cls_frmVisibleForm = New Form_frmVisibleForm
With cls_frmVisibleForm
.Modal = True
.Visible = True
.SetFocus
End With
End Sub
我尝试从 (mdlTestMBox) 对其进行测试的模块:
Option Compare Database
Option Explicit
Public Function ClassTest()
Dim mbox As clsMBox
Set mbox = New clsMBox
End Function
我想您需要将InstantiateForm
设为公共方法,然后调用它,或者将其重命名为初始化:
Private Sub Class_Initialize()
Static cls_frmVisibleForm As Access.Form
Set cls_frmVisibleForm = New Form_frmVisibleForm
With cls_frmVisibleForm
.Modal = True
.Visible = True
.Move 0, 0
End With
End Sub
要打开和关闭表单实例:
Public Function ClassTest()
Static mbox As clsMBox
Set mbox = New clsMBox
Stop
DoCmd.Close acForm, Forms(0).Name
End Function
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.