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

有些新手问:为什么我赋值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,"")也是可以的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值