WPF中实例化Com组件,调用组件的方法时报System.Windows.Forms.AxHost+InvalidActiveXStateException的异常

时间:2022-07-08 15:40:33

WPF中实例化Com组件,调用组件的方法时报System.Windows.Forms.AxHost+InvalidActiveXStateException的异常

在wpf中封装Com组件时,调用组件的方法时抛出异常System.Windows.Forms.AxHost+InvalidActiveXStateException的异常。

通过网上查询发现,除了实例化com组件,还要将该对象进行初始化。

添加如下代码后

System.Windows.Controls.Grid CTSGrid = new System.Windows.Controls.Grid();
AxAutoTest _autoTestClass = new AxAutoTest();
//[WPF承载windows组件必须用WindowsFormsHost]
System.Windows.Forms.Integration.WindowsFormsHost host = null;

host = new System.Windows.Forms.Integration.WindowsFormsHost();
// 控制器实例AxAutoTest的载体添加到一个容器中
host.Child = _autoTestClass;
((System.ComponentModel.ISupportInitialize)(_autoTestClass)).BeginInit();
CTSGrid.Children.Add(host);
((System.ComponentModel.ISupportInitialize)(_autoTestClass)).EndInit();

完美解决