C#开发ArcEngine中IMapControl中的LoadMxFile有关问题
C#开发ArcEngine中IMapControl中的LoadMxFile问题
我用IMapControl中的LoadMxFile方法加载mxd文件打开图层,为什么会出现下面的情况。
右边的目录里有3个图层,但是只有一个图层可以显示,另外两个的框是灰色的,不管怎么点,图层都不能显示。
正确的情况应该像后面那张图一样的,请大侠们指教~~

我的代码很简单,
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace test
{
public partial class selectMxdForm : Form
{
public selectMxdForm()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog openMxdFile = new OpenFileDialog();
openMxdFile.Filter = "mxd文件(*.mxd)|*.mxd"; //打开mxd文件
openMxdFile.Multiselect = false;
DialogResult openShpFileResult = openMxdFile.ShowDialog();
if (openShpFileResult != DialogResult.OK)
return;
textBox1.Text = openMxdFile.FileName;
}
private void button2_Click(object sender, EventArgs e)
{
string path = textBox1.Text.Trim();
if (string.IsNullOrEmpty(path) == false)
{
Form1.pMainWin.axMapControl1.LoadMxFile(path);
//Form1.pMainWin.axMapControl2.LoadMxFile(path);
this.Close();
}
else
{
MessageBox.Show("请选择需要打开的mxd文件!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}
}
}
不知道哪里出问题了~~
------解决思路----------------------
你好,我找到问题原因了,你的Form上必须添加一个LicenseControl的控件。加上就可以显示所有图层了。
------解决思路----------------------
我给你们解答
mxd中的图层可以设置显示比例;
不在比例范围内,图层在toc中显示就是灰色的。
我用IMapControl中的LoadMxFile方法加载mxd文件打开图层,为什么会出现下面的情况。
右边的目录里有3个图层,但是只有一个图层可以显示,另外两个的框是灰色的,不管怎么点,图层都不能显示。
正确的情况应该像后面那张图一样的,请大侠们指教~~
我的代码很简单,
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace test
{
public partial class selectMxdForm : Form
{
public selectMxdForm()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog openMxdFile = new OpenFileDialog();
openMxdFile.Filter = "mxd文件(*.mxd)|*.mxd"; //打开mxd文件
openMxdFile.Multiselect = false;
DialogResult openShpFileResult = openMxdFile.ShowDialog();
if (openShpFileResult != DialogResult.OK)
return;
textBox1.Text = openMxdFile.FileName;
}
private void button2_Click(object sender, EventArgs e)
{
string path = textBox1.Text.Trim();
if (string.IsNullOrEmpty(path) == false)
{
Form1.pMainWin.axMapControl1.LoadMxFile(path);
//Form1.pMainWin.axMapControl2.LoadMxFile(path);
this.Close();
}
else
{
MessageBox.Show("请选择需要打开的mxd文件!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}
}
}
不知道哪里出问题了~~
------解决思路----------------------
你好,我找到问题原因了,你的Form上必须添加一个LicenseControl的控件。加上就可以显示所有图层了。
------解决思路----------------------
我给你们解答
mxd中的图层可以设置显示比例;
不在比例范围内,图层在toc中显示就是灰色的。