c#+AE开发中,System.Windows.Forms.AxHost.InvalidActiveXStateException 在 ESRI.ArcGIS.AxControls.dll 中发生

博客主要讨论了在将ArcGIS窗体应用程序的目标框架从3.5升级到4.5后遇到的启动错误,即System.Windows.Forms.AxHost+InvalidActiveXStateException异常。作者尝试了两种解决方法:一是添加特定的初始化代码,虽然能启动窗体但导致数据视图和布局视图控件显示异常;二是将目标平台改为X64,但这引发了新的问题。尽管通过复制源代码解决了部分问题,但仍有其他控件存在问题。作者正在寻求更完善的解决方案,并邀请专业人士交流指导。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述图

          //目标框架由3.5改为4.5后会出现无法启动的错误,System.Windows.Forms.AxHost+InvalidActiveXStateException”的异常,

解决办法及引起的相关问题

一、添加以下代码解决这个问题

 在问题代码之前添加以下三行代码:
            ((System.ComponentModel.ISupportInitialize)(this.axPageLayoutControl1)).BeginInit();
            this.Controls.Add(axPageLayoutControl1);
            ((System.ComponentModel.ISupportInitialize)(this.axPageLayoutControl1)).EndInit();

这个办法能启动窗体,但是程序运行后,切换到数据视图的时候没有数据显示,布局视图的控件不显示

在Mainfrm.Designer.cs文件里面其实已经有初始化代码了,问题应该不是出现在这里。

二、修改目标平台为X64

“解决方案资源管理器”中找到自己的项目,右键,选择“属性”,打开后点击“生成”,在这里把“目标平台”改为“x86”,如下图

这样又会引起新的问题

打开“Program.cs”,添加代码

第三行

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.EngineOrDesktop);
            Application.Run(new MainForm());

问题依然存在,放在最前面也不行。

将该函数的全部内容重新从复制源里面复制过来又不报错了,但是还有其它控件存在这个问题,加上以上三行代码可以解决。

将继续在寻找完善解决办法,欢迎大佬们能够指导交流。

 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

空中旋转篮球

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值