源码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using ESRI.ArcGIS.Carto;
using ESRI.ArcGIS.Display;
using ESRI.ArcGIS.esriSystem;
using ESRI.ArcGIS.Controls;
using ESRI.ArcGIS.Geometry;
using ESRI.ArcGIS.MapControl;
using ESRI.ArcGIS.Output;
using ESRI.ArcGIS.SystemUI;
using ESRI.ArcGIS.TOCControl;
namespace lesson2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
loadMapDocument();
}
private void button2_Click(object sender, EventArgs e)
{
loadMapDocument2();
}
//加载地图文档
private void loadMapDocument()
{
System.Windows.Forms.OpenFileDialog openFileDialog;
openFileDialog = new OpenFileDialog();
openFileDialog.Title = "打开地图文档";
openFileDialog.Filter = "map documents(*.mxd)|*.mxd";
openFileDialog.ShowDialog();
string filePath = openFileDialog.FileName;
if (axMapControl1.CheckMxFile(filePath))
{
axMapControl1.MousePointer = ESRI.ArcGIS.Controls.esriControlsMousePointer.esriPointerHourglass;
axMapControl1.LoadMxFile(filePath, 0, Type.Missing);
axMapControl1.MousePointer = ESRI.ArcGIS.Controls.esriControlsMousePointer.esriPointerDefault;
}
else
{
MessageBox .Show(filePath +"不是有效的地图文档" );
}
}
//加载地图文档中的特定地图
private void loadMapDocument2()
{
System.Windows.Forms.OpenFileDialog openFileDialog;
openFileDialog = new OpenFileDialog();
openFileDialog.Title = "打开地图文档";
openFileDialog.Filter = "map documents(*.mxd)|*.mxd";
openFileDialog.ShowDialog();
string filePath = openFileDialog.FileName;
if (axMapControl1.CheckMxFile(filePath))
{
IArray arrayMap = axMapControl1.ReadMxMaps(filePath, Type.Missing);
int i;
IMap map;
for (i = 0; i < arrayMap.Count; i++)
{
map = arrayMap.get_Element(i) as IMap;
if (map.Name == "Layers")
{
axMapControl1.MousePointer = ESRI.ArcGIS.Controls.esriControlsMousePointer.esriPointerHourglass;
axMapControl1.LoadMxFile(filePath, 0, Type.Missing);
axMapControl1.MousePointer = ESRI.ArcGIS.Controls.esriControlsMousePointer.esriPointerDefault;
break;
}
}
}
else
{
MessageBox.Show(filePath + "不是有效的地图文档");
}
}
}
}
————————————————————————————————————————
————————————————————————————————————————————————
program
using System;
using System.Collections.Generic;
using System.Windows.Forms;
namespace lesson2
{
static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
}
即时窗口提示:::
在 System.Runtime.InteropServices.COMException 中第一次偶然出现的“mscorlib.dll”类型的异常
在 System.Runtime.InteropServices.COMException 中第一次偶然出现的“mscorlib.dll”类型的异常
在 System.Runtime.InteropServices.COMException 中第一次偶然出现的“mscorlib.dll”类型的异常
在 System.Runtime.InteropServices.COMException 中第一次偶然出现的“mscorlib.dll”类型的异常
在 System.Runtime.InteropServices.COMException 中第一次偶然出现的“mscorlib.dll”类型的异常
在 System.Runtime.InteropServices.COMException 中第一次偶然出现的“mscorlib.dll”类型的异常
在 System.Runtime.InteropServices.COMException 中第一次偶然出现的“mscorlib.dll”类型的异常
在 System.AccessViolationException 中第一次偶然出现的“System.Windows.Forms.dll”类型的异常
本人最近才开始学~~
希望高手指点!!!
QQ280501801
liwei0086@163.com
5 个解决方案
#1
重新引用COM库。
选择低版本的 .NET Framework,比如 VS2003
选择低版本的 .NET Framework,比如 VS2003
#2
帮不上忙,帮顶。。。
#3
#4
一般的, 那个窗口内出现的此类提示可以忽略
#5
你这个问题好像是缺少license
#1
重新引用COM库。
选择低版本的 .NET Framework,比如 VS2003
选择低版本的 .NET Framework,比如 VS2003
#2
帮不上忙,帮顶。。。
#3
#4
一般的, 那个窗口内出现的此类提示可以忽略
#5
你这个问题好像是缺少license