IEngineEditor与IWorkspaceEdit,以及相关的事件监听

IEngineEditor适用于直接在图层上的编辑,例如使用“要素编辑”工具菜单上的“开始编辑”等工具进行编辑,相应的事件使用IWorkspaceEdit监听,例如以下的代码:

[c-sharp]  view plain  copy
  1. private IEngineEditor m_EngineEditor = new EngineEditorClass();  
  2. private IEngineEditEvents_Event m_EngineEditEvents ;  
  3. private void MainForm_Load(object sender,EventArgs e)  
  4. {  
  5.      //get the MapControl  
  6.      m_mapControl = (IMapControl3)axMapControl1.Object;  
  7.      //disable the Save menu (since there is no document yet)  
  8.      menuSaveDoc.Enabled = false;  
  9.      m_EngineEditEvents = (IEngineEditEvents_Event)m_EngineEditor;  
  10.      m_EngineEditEvents.OnStartEditing += new IEngineEditEvents_OnStartEditingEventHandler(m_EngineEditEvents_OnStartEditing);  
  11. }  
  12. void m_EngineEditEvents_OnStartEditing()  
  13. {  
  14.      MessageBox.Show("Start Editing");       
  15. }   

 

IWorkspaceEdit适用于直接对workspace进行的编辑,相应的事件使用IWorkspaceEditEvents_Event监听,例如以下的代码:

[c-sharp]  view plain  copy
  1. private IWorkspaceEdit wsEdit;  
  2. private IWorkspaceEditEvents_Event wsEditEvents;  
  3. private void MainForm_Load(object sender,EventArgs e)  
  4. {  
  5.       //get the MapControl  
  6.       m_mapControl = (IMapControl3)axMapControl1.Object;  
  7.       //disable the Save menu (since there is no document yet)  
  8.        menuSaveDoc.Enabled = false;  
  9.       wsEdit = MyTool.GetWorkspaceEdit(map1.Map);  
  10.       wsEditEvents = (IWorkspaceEditEvents_Event)wsEdit;  
  11.       wsEditEvents.OnStopEditing += new IWorkspaceEditEvents_OnStopEditingEventHandler(wsEditEvents_OnStopEditing);  
  12. }  
  13. void wsEditEvents_OnStopEditing(bool saveEdits)  
  14. {  
  15.       MessageBox.Show("StopEditing");  
  16. }  

你可能感兴趣的:(IEngineEditor与IWorkspaceEdit,以及相关的事件监听)