您的位置:首页 > 其它

当ArcEngine报事件同时存在于AxMapControl,MapControl时的解决方法(转载)

2008-04-17 16:09 531 查看
开发环境:VS.Net 2005(C#)

AE版本:9.2 sp4

报错的内容:

The type 'ESRI.ArcGIS.MapControl.IMapControlEvents2_OnOleDropEventHandler' exists in both 'e:\Program Files\ArcGIS\DotNet\ESRI.ArcGIS.MapControl.dll' and 'e:\ProgramFiles\ArcGIS\DotNet\ESRI.ArcGIS.AxMapControl.dll'

解决方法:

1. In VS.NET 2005, go to your project's References folder in Solution Explorer. Select ESRI.ArcGIS.AxMapControl or ESRI.ArcGIS.MapControl. In the Properties Pane, change Aliases from global to global, MapControlAlias.

将AxMapControl,MapControl都加入到引用中,修改ESRI.ArcGis.AxMapControl引用的属性,修改其Aliases(别名)由"global" to "global, MapControlAlias";

2. In your code at the first line in the file add: extern alias MapControlAlias;

在其他命名空间之前添加extern alias MapControlAlias;

3. Add alias to your ambiguous call. Ex. this.axMapControl1.OnMouseMove += new MapControlAlias::ESRI.ArcGIS.MapControl.IMapControlEvents2_OnMouseMoveEventHandler(this.axMapControl1_OnMouseMove);

在冲突的地方,加上别名::想要调用的对象

This should work, don't worry about trying to do commandline /references as I couldn't figure it out, but the Properties Alias worked.

修改后,如下:

引用代码:

extern alias MapControlAlias;

using DevExpress.XtraEditors;

using DevExpress.XtraEditors.Controls;

using ESRI.ArcGIS.Carto;

using ESRI.ArcGIS.DataSourcesFile;

using ESRI.ArcGIS.DataSourcesRaster;

using ESRI.ArcGIS.esriSystem;

using ESRI.ArcGIS.Geodatabase;

类中代码:

this.axMapControl1.OnMouseMove += new MapControlAlias::ESRI.ArcGIS.MapControl.IMapControlEvents2_OnMouseMoveEventHandler(this.axMapControl1_OnMouseMove);

this.axMapControl1.OnAfterDraw += new MapControlAlias::ESRI.ArcGIS.MapControl.IMapControlEvents2_OnAfterDrawEventHandler(this.axMapControl1_OnAfterDraw);

来源于:http://forums.esri.com/thread.asp?c=159&f=1707&t=171978&mc=6
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐