假设我在Access中有MainForm
。
MainForm
是SubForm
控件。
我还有另一个名为AnotherForm
的表单,我想使用它的MainForm
属性插入SubForm
的{{1}}控件。
然后我想在变量中捕获新创建的SourceObject
的实例。
我可以这样做:
AnotherForm
酷,'Inside the MainForm's code-behind
Me.SubForm.SourceObject = "Form.AnotherForm"
Dim af As Form_AnotherForm
Set af = Me.SubForm.Form
现在保存af
控件在设置SubForm
属性时创建的表单实例。
现在,让我们说我想先通过SourceObject
实例new
然后将其传递给AnotherForm
控件来反转该过程。
理论上它看起来像这样:
SubForm
使用其他方法完成任何方法?
我希望能够将不同的表单附加到'Inside the MainForm's code-behind
Dim af As Form_AnotherForm
Set af = New Form_AnotherForm
Me.SubForm.Form = af 'ERROR: Read-only
控件并在运行时将其切换出来。但是,如果我将SubForm
附加到AnotherForm
,然后将SubForm
附加到YetAnotherForm
,那么我会再次将SubForm
附加到AnotherForm
,我想使用与我第一次使用的SubForm
相同的实例,以便在它重新出现时不会丢失任何更改。
答案 0 :(得分:1)
据我所知,这是不可能的。你不能替换子表单的实例,你只能更改SourceObject,这个操作会破坏以前的子表单实例,并“从头开始”创建新的子表单。
我会在你的情况下使用tab控件来保存你想要切换的所有子表单的实例:使用标签样式none
创建标签控件,使边框透明,因此子表单的外观将是相同的,如如果使用了一个子表单控件。
要在可见子表单之间切换,只需将所需值分配给选项卡控件
答案 1 :(得分:0)
您尝试使用Set语句吗?
Set Me.SubForm.Form = af