我的情况类似于以下简化描述:
具有TextBox的表单(称为txtQty),用户可以在其中输入整数。事件txtQty_Validate事件用于验证用户输入,并迫使他们在更改焦点之前纠正任何错误。这与表单上的所有其他控件(除了txtQty)一起使用时效果很好。我认为这是因为表单上的“取消”按钮具有必须设置为false的属性CausesValidation。因此,当用户从txtQty制表到取消按钮(其下一个是TabIndex)时,它不会适当地触发txtQty_Validation事件。
我的第一个本能是直接进入txtQty_KeyPress事件(我已经在使用该事件使RETURN键充当TAB键)并捕获TAB键并临时切换CausesValidation属性以允许txtQty_Validation事件触发。但是,似乎捕获TAB密钥并不像我想象的那样容易。
有什么建议么?我认为这不可能是任何创建表单的人第一次遇到这种情况。
谢谢
您可以在“取消”GotFocus
事件中尝试此操作。
Dim b As Boolean
Call txtQty_Validate(b)
If b Then txtQty.SetFocus
假设你有这样的事情
Private Sub txtQty_Validate(Cancel As Boolean)
If Not IsNumeric(txtQty.Text) Then
Cancel = True
End If
End Sub
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句