问题描述图
//目标框架由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());
问题依然存在,放在最前面也不行。
将该函数的全部内容重新从复制源里面复制过来又不报错了,但是还有其它控件存在这个问题,加上以上三行代码可以解决。
将继续在寻找完善解决办法,欢迎大佬们能够指导交流。
博客主要讨论了在将ArcGIS窗体应用程序的目标框架从3.5升级到4.5后遇到的启动错误,即System.Windows.Forms.AxHost+InvalidActiveXStateException异常。作者尝试了两种解决方法:一是添加特定的初始化代码,虽然能启动窗体但导致数据视图和布局视图控件显示异常;二是将目标平台改为X64,但这引发了新的问题。尽管通过复制源代码解决了部分问题,但仍有其他控件存在问题。作者正在寻求更完善的解决方案,并邀请专业人士交流指导。
4388





