求助,在VB的界面上加一个文本框和一个命令按钮,文本框上输2个文字
求助,在VB的界面上加一个文本框和一个命令按钮,文本框上输2个文字删除文本框的一个文字,点命令按钮那个被删除的文字会恢复,如果把文本框上的文字全删除,点今命按钮,它会一个...
求助,在VB的界面上加一个文本框和一个命令按钮,文本框上输2个文字删除文本框的一个文字,点命令按钮那个被删除的文字会恢复,如果把文本框上的文字全删除,点今命按钮,它会一个字一个字的恢复。
这个代码要怎么写?求源代码。 展开
这个代码要怎么写?求源代码。 展开
1个回答
展开全部
Option Explicit
'计时API
Private Declare Function GetTickCount Lib "kernel32" () As Long
Private strUndo() As String '保存text内容
Private lngIndex As Long '记录text长度
Private isUndo As Boolean '标记是否是Undo操作
Private Sub btnUndo_Click() '恢复按钮
Dim iLen As Integer
isUndo = True '标记现在是进行恢复操作
If Text1.Text = "" Then
'如果是全部删除,则一个一个全部恢复
For iLen = 0 To UBound(strUndo)
Text1.Text = Text1.Text & strUndo(iLen)
sleep 500 '为了显示一个一个出现效果, 暂停0.5秒
Next
lngIndex = Len(Text1.Text) '记录text长度
Else
'当text只删除一部分时,按一次按钮只恢复一个, 可重复按直到完全恢复.
If Len(Text1.Text) < UBound(strUndo) + 1 Then
Text1.Text = Text1.Text & strUndo(Len(Text1.Text))
End If
lngIndex = Len(Text1.Text)
End If
isUndo = False
End Sub
Private Sub Text1_Change()
If Not isUndo Then '检查是否是恢复操作
'不是恢复操作时
If Len(Text1.Text) > lngIndex Then
'如果text是在增加,则记录增加的字符
ReDim Preserve strUndo(lngIndex)
strUndo(lngIndex) = Mid(Text1.Text, Len(Text1.Text), 1)
lngIndex = lngIndex + 1
Else
'text删除,记录长度
lngIndex = Len(Text1.Text)
End If
End If
End Sub
'休眠等待. 时间单位为毫秒
Private Sub sleep(ByVal lngMsecond As Long)
Dim lngT As Long
Dim lngCnt As Long
lngT = GetTickCount
lngCnt = 0
While GetTickCount - lngT < lngMsecond
lngCnt = lngCnt + 1
If lngCnt >= 20 Then
DoEvents
lngCnt = 0
End If
Wend
End Sub
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询