VB 在任意一个text或Combo光标处插入特殊符号?

来源:百度知道 编辑:UC知道 时间:2024/06/07 13:09:20
网上有个例子:
Text1.Text = Left(Text1.Text, Text1.SelStart) & Clipboard.GetText & Mid(Text1.Text, Text1.SelStart + 1)
这样是把特殊符号如“≥”复制到剪贴版再贴Text1光标处。问题是我有text1,text2....text20 ,还有Combo1...Combo10

我的想法是上面放一快捷按键,按一下,相应的特殊符号自动到焦点控件(text1、Combo1)或的光标后。
如 text1的内容为“20”,我光标放在20前,我做个command1,功能是将“≥”插入到20前,成为“≥20”. 但text.box有n个(除了text还有combox),我只做一个command1专用来插入“≥”,功能和excel的符号栏功能一样,如图:

理解就好办了,,
其实你要的非常简单,我只要几行代码就帮你解决
首先你创建一个text1把index属性改成0(创建数组)
然后复制这个text1然后狂粘贴,随便你粘贴多少个。
我下面这个个代码都没问题

combo1也是一样的创个combo1,index改成0
复制粘贴

'代码

Dim con As Control
Private Sub Combo1_gotfocus(Index As Integer)
Set con = Combo1(Index)
End Sub

Private Sub Command1_Click()
con.Text = "≥" & con.Text'加入"≥"
End Sub

Private Sub Text1_GotFocus(Index As Integer)
Set con = Text1(Index)
End Sub

看了你补充,我也补充一下,应该没问题了。像你图片里那样。\(^o^)/~

采集控件失去焦点时光标位置保存到LastCurPos.
在插入字符后再返回控件,重定位光标。
combobox 的selstart,在lostfocus里踩不到,在validate里面可以踩到。发生validate事件需要combo1.CausesValidation = True (默认属性)。

定义一个全程变量,在各个控件失去焦点时,记下自己。这样点快捷键时,对上一次失去焦点的控件操作即可。

Private Lastctl As Control,LastCurPos as integer

Private Sub 快捷键_Click()
Lastctl.Text = Left(Lastctl.Text, LastCurPos) & Clipboard.GetText & Mid(Lastctl.Text, L