C# Undo Redo

 public void IWorkspaceEdit_Example(IWorkspace workspace, string nameOfFeatureClass)
    {
        IFeatureWorkspace featureWorkspace = (IFeatureWorkspace)workspace;
        IFeatureClass featureClass = featureWorkspace.OpenFeatureClass(nameOfFeatureClass);
        IWorkspaceEdit workspaceEdit = (IWorkspaceEdit)workspace;
        //start editing with undo redo functionality
        workspaceEdit.StartEditing(true);
        workspaceEdit.StartEditOperation();
        IFeature feature = featureClass.GetFeature(1);
        feature.Delete();
        workspaceEdit.StopEditOperation();
        Console.WriteLine("Would you like to undo your operation? Y or N");
        string response = Console.ReadLine();
        if(response.ToUpper() == "Y")
        {
            workspaceEdit.UndoEditOperation();
        }
        bool hasEdits = false;
        workspaceEdit.HasEdits(ref hasEdits);
        if (hasEdits)
        {
            Console.WriteLine("Would you like to save your edits? Y or N");
            response = Console.ReadLine();
            if (response.ToUpper() == "Y")
            {
                workspaceEdit.StopEditing(true);
            }
            else
            {
                workspaceEdit.StopEditing(false);
            }
        }
    }

原文地址:https://www.cnblogs.com/zuiyirenjian/p/1909663.html