vb textbox 多次触发change事件
答案:2 悬赏:60 手机版
解决时间 2021-02-28 13:12
- 提问者网友:喧嚣尘世
- 2021-02-27 22:59
使用搜狗输入法在文本框中输入输入词组,如输入“百度”,就会触发两次Change事件。我希望没输入一个完整的词组触发一次Change事件。
最佳答案
- 五星知识达人网友:青尢
- 2021-02-27 23:55
Dim flag As Boolean
Private Sub Form_Load()
With Timer1
.Enabled = False
.Interval = 1000
End With
End Sub
Private Sub Text1_Change()
Cls
If flag = True Then
Print Text1.Text
flag = False
End If
End Sub
Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
Timer1.Enabled = False
End Sub
Private Sub Text1_KeyUp(KeyCode As Integer, Shift As Integer)
Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer()
Timer1.Enabled = False
flag = True
Text1_Change
End Sub用timer来延迟操作change事件即可
Private Sub Form_Load()
With Timer1
.Enabled = False
.Interval = 1000
End With
End Sub
Private Sub Text1_Change()
Cls
If flag = True Then
Print Text1.Text
flag = False
End If
End Sub
Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
Timer1.Enabled = False
End Sub
Private Sub Text1_KeyUp(KeyCode As Integer, Shift As Integer)
Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer()
Timer1.Enabled = False
flag = True
Text1_Change
End Sub用timer来延迟操作change事件即可
全部回答
- 1楼网友:玩家
- 2021-02-28 01:29
vb6有两种方法,
1用withevents来做.
private withevents txt as textbox
这样,你可处理事件
private sub txt_change()
..这里加你的代码
end sub
增加控件时
set txt= controls.add("textbox","newtxt")
但你只能一个个的申明,还不如设计时加上这个
第二种是用控件数组
你先做一个textx(0)控件数组
然后加载时 用load textx(n) 语句进行
这样你的代码一般是
private sub textx_change(index )
你只要处理对应的index就行.
这样操作会方便一些.
如果不明白,请补充.
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯