在网上找了好久还是没找到一个像样的说法,我把我自己的办法贴出来供大家参考
1、将Axmapcontrol的属性Modifier设置为public,使其成为全局变量
2、在类中填写构造函数,将axmapcontrol作为参数传入,并将其传给ax(提前声明一个Axmapcontrol对象ax)
private AxMapControl ax;
//构造函数
public LoadMapFile(AxMapControl AMC1)
{
this.ax = AMC1;
}
//加载mxd文档的方法
public void LoadMxdFile(AxMapControl ax)
{
System.Windows.Forms.OpenFileDialog openFileDialog;
openFileDialog = new OpenFileDialog();
openFileDialog.Title = "打开地图文档";
openFileDialog.Filter = "map documents(*.mxd)|*.mxd";
openFileDialog.ShowDialog();
string filePath = openFileDialog.FileName;
if (ax.CheckMxFile(filePath))
{
ax.MousePointer = esriControlsMousePointer.esriPointerHourglass;
ax.LoadMxFile(filePath, 0, Type.Missing);
ax.MousePointer = esriControlsMousePointer.esriPointerDefault;
}
else
{
MessageBox.Show(filePath + "不是有效的地图文档");
}
}
3、在窗体事件中声明该类,并调用类中的函数
LoadMapFile myLoadMxdFile = new LoadMapFile(axMapControl1);//声明类对象
myLoadMxdFile.LoadMxdFile(axMapControl1);//调用类中方法打开地图