我在使用VBScript扩展的应用程序上工作。我可以访问VB6表单,可以添加控件并引用表单上的其他控件。我也可以通过互操作启动.Net表单。
我希望能够创建对.Net组件的引用并将其引用到VB6 Frame或SSTab,然后让组件创建一个interop用户控件并将其放在Frame /中的SSTab。如果我只使用VBScript执行此操作,我会执行以下操作:
set frame = Form.Controls("Frame1")
set cmd1 = Form.Controls.Add("vb.commandbutton", "Cmd1")
cmd1.Container = frame
cmd1.Visible = true
我希望能够在InteropUserControl中做类似的事情。在互操作用户控件上有一个名为Container的属性,但它是只读的,所以我不确定如何将控件放到父容器中。
任何建议都将受到赞赏。
此致
Shane Holder
答案 0 :(得分:0)
如果你想知道如何动态添加控件,那很简单:
Form.Controls.Add(new MyControl())
如果你想控制一个父容器,那就是这样做的方法。看起来您无法动态更改父控件,因此您必须决定使用if / else逻辑将您的子控件添加到谁。示例PseudoCode:
InterOpControl myControl = new InterOpControl();
if (someVariable) {
Form1.Controls.Add(myControl);
}
else {
Form2.Controls.Add(myControl);
}
如果你不能这样做,那么你可以这样做:
if (someVariable) {
Form1.Controls.Add(new InterOpControl());
}
else {
Form2.Controls.Add(new InterOpControl());
}
现在你没有对它的引用,但你可以稍后再获取它。