在没有VS设计器的情况下动态添加ActiveX控件

时间:2009-06-11 08:52:54

标签: c# activex

我正在尝试动态地将ActiveX控件添加到我的应用程序中,而不必将其放在表单上。

但是,当我使用Visual Studio设计器放置ActiveX控件时,初始化代码生成,其中包含用于设置ActiveX控件的OcxState的语句。

使用设计器将ActiveX控件添加到表单时,似乎将OcxState序列化为资源文件,稍后在表单初始化时检索该文件。

现在我想在代码中动态设置OcxState,所以我可以在我的类库中为ActiveX for创建某种包装类。

任何人都知道如何动态设置ActiveX控件的OcxState?

提前致谢!

马修

3 个答案:

答案 0 :(得分:1)

我在同样的问题上工作,我现在得到的解决方案是使用Worker表单,这不是show,但是我可以加载ocx并将ocx的所有事件和方法包装到外部。 在我的库类中,我使用的形式与任何其他类一样,而不是ocx调用

答案 1 :(得分:1)

我在处理需要ActiveX控件进行数据操作的.NET项目时遇到了同样的问题。我必须将ActiveX控件放在表单上,​​使用应用程序加载它并将其与公共属性一起使用。否则,如果我只创建一个控件实例,我就会失去一些功能。

表单不需要一直可见,但它提供了一个ActiveX控件可以存在的容器。

答案 2 :(得分:1)

另一种方式是 UserControl , 您可以使用 ActiveX控件创建用户控件。现在,您可以在运行时动态地将用户控件加载到任何位置。