#眉標=.NET #副標=.NET Namespace專欄 #大標= System.Collections(上) 從存放資料開始 #作者=文/彭靖灝 -----box----- 程式 1 利用Stack 類別提供復原能力 Private myStack As New Stack Private Sub btnDelete_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnDelete.Click Dim objAction As New Action With objAction .Name = "DELETE" .Target = "Paragraph(3)" .Position = "NA" End With myStack.Push(objAction) lstActions.Items.Add("DELETE Paragraph(3)") End Sub Private Sub btnInsert_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnInsert.Click Dim objAction As New Action With objAction .Name = "INSERT BEFORE" .Target = "Character(A)" .Position = "Paragraph(2)" End With myStack.Push(objAction) lstActions.Items.Add( _ "INSERT Character(A) BEFORE Paragraph(2)") End Sub Private Sub btnModify_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnModify.Click Dim objAction As New Action With objAction .Name = "MODIFY FORMAT" .Target = "FormatTemplate(2)" .Position = "Paragraph(5)" End With myStack.Push(objAction) lstActions.Items.Add( _ "MODIFY FORMAT Paragraph(5) TO " & _ "FormatTemplate(2)") End Sub Private Sub btnUndo_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnUndo.Click Dim objAction As Action txtUndo.Text = "" Do While myStack.Count > 0 objAction = myStack.Pop txtUndo.Text &= objAction.Undo & _ ControlChars.NewLine Loop End Sub -----end----- -----box----- 程式 2 另一個取用堆疊成員的方式 Private Sub btnUndo2_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnUndo2.Click Dim objaction As Action txtUndo.Text = "" For Each objaction In myStack txtUndo.Text &= objaction.Undo & _ ControlChars.NewLine Next End Sub -----end-----