public override void UndoInfo(ObjectListView olv) { foreach (AnimeStack astk in this.AniStack) { switch (astk.EType) { case EditType.Add: case EditType.Copy: this.Total--; this.Space -= astk.EAnime.Size; this.Uid--; olv.RemoveObject(astk.EAnime); break; case EditType.Modify: Anime ma = astk.OrgAnime; this.Space += astk.EAnime.Size - ma.Size; ma.RevertSelf(astk.EAnime); olv.RefreshObject(ma); // bug sel name also change if (olv.SelectedObject == ma) { Form.tsslSelName.Text = String.Format("Selected: {0}", ma.Name); Form.tsslSelSpace.Text = String.Format("Selected Size: {0}", FormatAnimeSize(ma.Size)); this.OnRemarkChanged(); } break; case EditType.Delete: this.Total++; this.Space += astk.EAnime.Size; olv.AddObject(astk.EAnime); break; } } this.AniStack.Clear(); base.UndoInfo(olv); }