我很想在 VB.Net 中創建一個型別演算法撤消/重做,首先至少我想進行撤消。
如果我們有示例 Textbox1.Text = a,b,c
然后改為= a,b,c,e
然后改為= a,b,c,f
當我點擊undo我想顯示時(即它之前的值。之前之后a,b, c, f,是a, b, c,e
a,b,c,e
當我再次單擊時,我想顯示
a,b,c
也就是說,一個undo / redo algorithm附加值
我首先創建了一個全域串列。
Public Module Globals
Public Undo As New List(Of String)
End Module
如果串列中不存在 Textboxes 值,那么我將添加它。
Private Sub Button1(sender As Object, e As EventArgs) Handles Button1.Click
If Undo IsNot TextBox1.Text Then
Undo.Add(TextBox1.Text)
End If
End Sub
嘿,這里是棘手的部分
Private Sub Undo_Click(sender As Object, e As EventArgs) Handles Undo.Click
Dim i as integer = Undo.Count
While TextBox1.Text IsNot Undo(i)
TextBox1.Text = Undo(i)
End While
End Sub
For i As Integer = Undo.Count To 0 Step -1
TextBox1.Text = Undo(i)
Next
不幸的是,在這種情況下沒有這樣的回圈。
uj5u.com熱心網友回復:
嘗試這個:
Private Undos As List(Of String) = New List(Of String)()
Private AddUndo As Boolean = True
Private Sub textBox1_TextChanged(ByVal sender As Object, ByVal e As EventArgs)
If AddUndo = True Then
Undos.Add(textBox1.Text)
End If
End Sub
Private Sub button1_Click(ByVal sender As Object, ByVal e As EventArgs)
If Undos.Count <> 0 Then
AddUndo = False
If Undos.Count > 1 Then
textBox1.Text = Undos(Undos.Count - 2)
Undos.RemoveAt(Undos.Count - 1)
Else
textBox1.Text = ""
Undos.RemoveAt(0)
End If
AddUndo = True
End If
End Sub
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/361781.html
標籤:网络
