如何使用命令按钮在文本框中的现有文本中插入新文本?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用命令按钮在文本框中的现有文本中插入新文本?相关的知识,希望对你有一定的参考价值。
我有一个自定义计算器按下按钮时,将其标题插入文本框。
Private Sub CmdBtn_Click()
Me.TextBox.Value = Me.TextBox.Value & " " & CmdBtn.Caption
End Sub
它工作正常。但是,使用此方法无法在已存在的文本中插入新文本。例如,如果当前文本是“abc”,那么我想在“a”和“bc”之间输入“x”以给出“axbc”的最终结果。我将光标放在应放置新文本的所需位置。有人知道如何实现它?谢谢,
答案
离开文本框时使用变量存储光标位置:
Option Compare Database
Option Explicit
Private LastPosition As Long
Private Sub CmdBtn_Click()
Dim Text As String
Text = Me!TargetBox.Value
' Insert source text at the stored position.
Me!TargetBox.Value = Left(Text, LastPosition) & Me!SourceBox.Value & Mid(Text, LastPosition + 1)
End Sub
Private Sub UserName_LostFocus()
' Store cursor position.
LastPosition = Me!UserName.SelStart
End Sub
另一答案
下面的解决方案非常适合在TextBox的任何位置输入文本。如果有人有比这更好的解决方案,请告诉我。
Private LastPosition as Long
Private Text as String
Private Sub TextBox_LostFocus()
If LastPosition = 0 and IsNull(Me!TextBox.Value) Then
Me!TextBox = " " + Me.ActiveControl.Caption
LastPosition = LastPosition + Len(Me.ActiveControl.Caption)
ElseIf
LastPosition >= AND Not IsNull(Me!TextBox.Value) Then
Text = Me!TextBox.Value
Me!TextBox.Value = Left( Text, LastPosition) & " " & _
Me.ActiveControl.Caption & Mid(Text, LastPosition + 1)
LastPosition = LastPosition + Len(Me.ActiveControl.Caption)
Else
Me!TextBox.Value = Me!TextBox.Value + " " + Me.ActiveControl.Caption
End If
End Sub
以上是关于如何使用命令按钮在文本框中的现有文本中插入新文本?的主要内容,如果未能解决你的问题,请参考以下文章