各位老师好,我使用c#和AE9.3.1做了一个地图桌面窗体,在窗体中我同时添加了axMapControl和axPageLayoutControl控件,实现了同时加载地图数据并可以联动,但当我保存时,却被告知“发生共享冲突”,这个如何处理?请高手指导一下,谢谢!
但问题还有一点,当用Engine和Desktop同时打开一个文档时,Desktop(Arcmap)是可以保存文档的,而Engine保存时就会显示发生共享冲突;再同时打开两个Desktop(Arcmap),然后都打开同一个文档,结果只有第一次打开的Desktop(Arcmap)能保存,第二次打开的不能保存。这又是什么原因呢?如果是以独占方式打开,是否可以在Engine里设置呢?
mark.
您好,能说的具体点吗,谢谢
@fenggengfei: 我也不懂,所以关注下这个问题。有人回答的话,我也能学习下。
我的问题已解决,其实并不冲突,只是我在操作时,同时用ArcGIS Desktop也打开了这个文档,所以保存时发生冲突,只要不同时打开同一个文档,保存是可以的。代码如下:
private void menuSaveDoc_Click(object sender, EventArgs e)
{
try
{
//execute Save Document command
if (m_mapControl.CheckMxFile(m_mapDocumentName))
{
//create a new instance of a MapDocument
IMapDocument mapDoc = new MapDocumentClass();
mapDoc.Open(m_mapDocumentName, string.Empty);
//Make sure that the MapDocument is not readonly
if (mapDoc.get_IsReadOnly(m_mapDocumentName))
{
MessageBox.Show("Map document is read only!");
mapDoc.Close();
return;
}
//Replace its contents with the current map
//mapDoc.ReplaceContents((IMxdContents)m_mapControl.Map);
mapDoc.ReplaceContents((IMxdContents)m_pageLayout.PageLayout);
//save the MapDocument in order to persist it
mapDoc.Save(mapDoc.UsesRelativePaths, false);
//close the MapDocument
mapDoc.Close();
}
}
catch (Exception ex)
{ MessageBox.Show(ex.Message); }
}
但问题还有一点,当用Engine和Desktop同时打开一个文档时,Desktop(Arcmap)是可以保存文档的,而Engine保存时就会显示发生共享冲突;再同时打开两个Desktop(Arcmap),然后都打开同一个文档,结果只有第一次打开的Desktop(Arcmap)能保存,第二次打开的不能保存。这又是什么原因呢?如果是以独占方式打开,是否可以在Engine里设置呢?