如何在RichTextBox中实现Undo功能(2)
Private trapUndo As Boolean
Private UndoStack As New Collection '可撤销的集合
Private RedoStack As New Collection '可恢复的集合
Private Sub Command2_Click()
Redo
End Sub
Private Sub Command1_Click()
Undo
End Sub
Private Sub Form_Load()
RichTextBox1.Text = ""
Command1.Caption = "撤销"
Command2.Caption = "恢复"
trapUndo = True
RichTextBox1_Change
RichTextBox1_SelChange
Show
DoEvents
End Sub
Private Sub mnuCopy_Click()
Clipboard.SetText RichTextBox1.SelText, 1 '拷贝
End Sub
Private Sub mnuCut_Click()
Clipboard.SetText RichTextBox1.SelText, 1 '剪切
RichTextBox1.SelText = ""
End Sub
Private Sub mnuDelete_Click()
RichTextBox1.SelText = "" '删除
End Sub
Private Sub mnuPaste_Click()
RichTextBox1.SelText = "" '这一步对Undo功能至关重要
RichTextBox1.SelText = Clipboard.GetText(1) '粘贴
End Sub
Private Sub mnuRedo_Click()
Command2_Click
End Sub
Private Sub mnuSelectAll_Click()
'全选
RichTextBox1.SelStart = 0
RichTextBox1.SelLength = Len(RichTextBox1.Text)
End Sub
Private Sub mnuUndo_Click()
Command1_Click
End Sub
Private Sub RichTextBox1_Change()
If Not trapUndo Then Exit Sub '因为because trapping is disabled
- 上一篇:控件数组的操作技巧
- 下一篇:禁止在TextBox中输入