有些新手问:为什么我赋值Text1.Text = "" 时候,他总是自己向下换一行呢?
其实这个问题从事件触发的过程分析,就不会有这个疑问了.
Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyReturn Then
...
'回车以后执行操作
...
Text1.Text = "" ' 清空Text1
End Sub
会发现他自己换下来一行;
其是从事件出发来看,KeyDown是按键按下的事件,你按下按键他就执行这个过程
当按键弹起,TextBox会自动识别回车键,也就是说Text1.Text确实已经是""了,但
是由于KeyUp中的回车导致他自己换行,如果把KeyDown事件换成KeyUp事件就
不会有这种情况发生了:
Private Sub Text1_KeyUp(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyReturn Then
...
'回车以后执行操作
...
Text1.Text = "" ' 清空Text1
End Sub
另外,如果你非要用KeyDown,那就加个SendKeys 发送退格键
SendKeys "{backspace}"
或者Replace(Text1.Text,vbcrlf,"")也是可以的