我有一个表格,我可以在其中输入订单。其中一个字段是订单号文本框。现在很多人都知道,订单数量可能很长,而且它们大多数都是数字化的(我曾经读过一次 - 主要是)。所以我想标记到订单文本框,并让它只突出显示最后一个数字(我输入的上一个订单号仍然在文本框中),这样如果数字是5467245
,那么它只会突出显示号码5
,我只需按6
即可将号码更改为4567246
PS:我想过只是自动为订单号添加+1,但有时他们会跳过一个数字,然后我必须按7
而不是6
来保持上面的例子。
根据这个答案,我目前所拥有的是:Highlight all text in textbox once it is activated
Private Sub txb_orderNumber_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, _
ByVal X As Single, ByVal Y As Single)
With txb_orderNumber
.SetFocus
If Len(.Text) > 0 Then
.SelStart = Len(.Text) - 1
.SelLength = 1
End If
End With
End Sub
但它只有在我用鼠标点击文本框时才有效(所以它实际上有效,但只有鼠标点击),即使作者说它会在我标签时有效文本框 - 但是当我插入它时它不起作用(这可能是因为我不想突出显示整个值,如在他的例子中)。而且我真的需要它来使用tab键。
所以这就是问题 - 当我选中文本框时如何才能使它工作
答案 0 :(得分:1)
我发现您的代码适用于Enter
事件,并且控件EnterFieldBehavior
属性设置为1 - fmEnterFieldBehaviorRecallSelection
。
Private Sub txtb_orderNumber_Enter()
With Me.txtb_orderNumber
If Len(.Text) > 0 Then
.SelStart = Len(.Text) - 1
.SelLength = 1
End If
End With
End Sub