您的位置:首页 > 产品设计 > UI/UE

关于Multiline为True的TextBox控件赋值=""时的自动换行

2009-09-18 00:00 155 查看
有些新手问:为什么我赋值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,"")也是可以的
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐