首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >System.Windows.Forms.AxHost InvalidActiveXStateException vb.net

System.Windows.Forms.AxHost InvalidActiveXStateException vb.net
EN

Stack Overflow用户
提问于 2012-08-08 03:10:38
回答 2查看 5.4K关注 0票数 1

当我将VB转换为VB.NET时,我发现了错误InvalidActiveXStateException。我的程序有一个主窗体和多个子窗体,当我检查子窗体时,其中一个存在此错误,无法打开该窗体,但其他窗体可以正确打开。代码是一样的为什么我不能打开那个表格?

我在网上做过研究,大多数人都说:

代码语言:javascript
复制
((System.ComponentModel.ISupportInitialize)(this.ax)).BeginInit();

this.Controls.Add(ax);

((System.ComponentModel.ISupportInitialize)(this.ax)).EndInit();

但是它似乎C#,而不是VB.NET,我不知道什么时候我能在我的程序中找到ax的名字。这是我程序代码的一部分。

代码语言:javascript
复制
Public Sub mnu_dceedc_enq_Click(ByVal eventSender As System.Object, ByVal eventArgs        As System.EventArgs) Handles mnu_dceedc_enq.Click
    If bolCheckSecurity("dcs_eedc_enq") Then
        Unload_frm()
        DCformfun = mnu_dceedc_enq.Name
        frmDCEEDC.Show()
    End If
End Sub

Private Sub chkfiltercase_CheckStateChanged(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles chkfiltercase.CheckStateChanged
    '20090401
    'fgdetail_Click

    Call ShowFolderDetail(fgdetail.get_TextMatrix(fgdetail.Row, 1), fgdetail.get_TextMatrix(fgdetail.Row, 2), CShort(txtbatchno.Text))
End Sub

当我打开一个子表单时,它将从nu_dceedc_enq_Click开始,然后转到chkfiltercase_CheckStateChanged,但是当运行到Call ShowFolderDetail时,它会自动返回到form.show(),然后出现异常。

为什么会发生这个错误,我如何解决它?

测试后的更新:

我试着注释所有的子chkfiltercase_CheckStateChanged和表单发生成功,我正在尝试测试它是否会发生其他。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-09 02:47:09

active x控件的标准转换/使用的部分功能是为控件创建状态。此状态并不总是正确设置/创建,有时在调试器中运行应用程序时会发生更改。当状态无效时,将引发此异常。我通常尝试用一个.net控件替换active x控件(一个已经存在的控件,或者创建一个等效控件)。

据推测,一些替代标准工具的商业手段将避免这个问题。

票数 0
EN

Stack Overflow用户

发布于 2013-07-22 14:27:13

我也遇到了同样的问题,我尝试了调用CreateControl的建议解决方案,但没有成功。

结果发现,互操作是针对.net 2.0框架生成的,并且在从4.0代码中调用时出现了问题。解决方案是使用.NET框架工具4.0生成互操作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11857135

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档