Arcgis Engine Undo 和 Redo 功能实现
2009-04-29 18:34
381 查看
/// <summary>
/// 撒消编辑
/// </summary>
/// <param name="m_pMap">IMap 地图对象</param>
public void MapUndoEdit(IMap m_pMap)
{
IEngineEditProperties ep = new EngineEditorClass();
ILayer m_pCurrentLayer = ep.TargetLayer;
if (m_pCurrentLayer == null) return;
IFeatureLayer pFeatureLayer = (IFeatureLayer)m_pCurrentLayer;
IDataset pDataset = (IDataset)pFeatureLayer.FeatureClass;
if (pDataset == null) return;
IWorkspaceEdit pWorkspaceEdit = (IWorkspaceEdit)pDataset.Workspace;
bool bHasUndos = false;
pWorkspaceEdit.HasUndos(ref bHasUndos);
if (bHasUndos)
pWorkspaceEdit.UndoEditOperation();
IActiveView pActiveView = (IActiveView)m_pMap;
pActiveView.Refresh();
}
/// <summary>
/// 重做
/// </summary>
/// <param name="m_pMap">IMap 地图对象</param>
public void MapRedoEdit(IMap m_pMap)
{
IEngineEditProperties ep = new EngineEditorClass();
ILayer m_pCurrentLayer = ep.TargetLayer;
if (m_pCurrentLayer == null) return;
IFeatureLayer pFeatureLayer = (IFeatureLayer)m_pCurrentLayer;
IDataset pDataset = (IDataset)pFeatureLayer.FeatureClass;
if (pDataset == null) return;
IWorkspaceEdit pWorkspaceEdit = (IWorkspaceEdit)pDataset.Workspace;
bool bHasUndos = false;
pWorkspaceEdit.HasUndos(ref bHasUndos);
if (bHasUndos)
pWorkspaceEdit.RedoEditOperation();
IActiveView pActiveView = (IActiveView)m_pMap;
pActiveView.Refresh();
}
来自——“ESRI 中国社区”
/// 撒消编辑
/// </summary>
/// <param name="m_pMap">IMap 地图对象</param>
public void MapUndoEdit(IMap m_pMap)
{
IEngineEditProperties ep = new EngineEditorClass();
ILayer m_pCurrentLayer = ep.TargetLayer;
if (m_pCurrentLayer == null) return;
IFeatureLayer pFeatureLayer = (IFeatureLayer)m_pCurrentLayer;
IDataset pDataset = (IDataset)pFeatureLayer.FeatureClass;
if (pDataset == null) return;
IWorkspaceEdit pWorkspaceEdit = (IWorkspaceEdit)pDataset.Workspace;
bool bHasUndos = false;
pWorkspaceEdit.HasUndos(ref bHasUndos);
if (bHasUndos)
pWorkspaceEdit.UndoEditOperation();
IActiveView pActiveView = (IActiveView)m_pMap;
pActiveView.Refresh();
}
/// <summary>
/// 重做
/// </summary>
/// <param name="m_pMap">IMap 地图对象</param>
public void MapRedoEdit(IMap m_pMap)
{
IEngineEditProperties ep = new EngineEditorClass();
ILayer m_pCurrentLayer = ep.TargetLayer;
if (m_pCurrentLayer == null) return;
IFeatureLayer pFeatureLayer = (IFeatureLayer)m_pCurrentLayer;
IDataset pDataset = (IDataset)pFeatureLayer.FeatureClass;
if (pDataset == null) return;
IWorkspaceEdit pWorkspaceEdit = (IWorkspaceEdit)pDataset.Workspace;
bool bHasUndos = false;
pWorkspaceEdit.HasUndos(ref bHasUndos);
if (bHasUndos)
pWorkspaceEdit.RedoEditOperation();
IActiveView pActiveView = (IActiveView)m_pMap;
pActiveView.Refresh();
}
来自——“ESRI 中国社区”
相关文章推荐
- Arcgis Engine9.2 Undo 和 Redo 功能实现
- 使用Java来实现编辑器的Undo Redo功能
- 【LeanEAP.NET】精益企业应用平台实战----表格批量编辑与Undo/Redo功能实现
- 利用swing的undo包实现Undo/Redo功能
- 表格批量编辑与Undo/Redo功能实现
- Command模式实现的redo/undo功能(以前在闪吧发过)
- 用Command模式简单的实现Undo&Redo功能
- C#实现的简易含undo/redo功能的winForm
- 用 Command设计模式实现 Undo和Redo 功能
- 利用Command模式实现无限次数的Undo/Redo功能
- 使用Java来实现编辑器的Undo Redo功能
- 实现编辑器的Undo Redo功能用Java来
- 设计模式:利用Command模式实现无限次数的Undo/Redo功能
- 实现编辑器的Undo Redo功能用Java来
- Undo/Redo几种实现方式介绍(四)——command模式实现
- 实现Undo/Redo以及格式刷的分析
- 【上海皿鎏软件股份有限公司】有关双向链表实现undo和redo
- Undo/Redo几种实现方式介绍(五)——两个需要讨论的问题
- Undo/Redo的使用,以及用命令模式实现Undo/Redo无限制
- 用JAVA实现Undo、Redo,Copy、Paste、Cut