Ho un modulo di accesso con una casella di testo che consente di digitare ripetutamente un numero, premere invio e lasciare che uno script faccia qualcosa. Per la velocità, il campo dovrebbe mantenere il fuoco dopo che DoStuff()
è terminato.Perché il mio .setfocus è stato ignorato?
Tuttavia, mentre sono sicuro che si esegue DoStuff()
, lo stato attivo passa sempre al campo successivo nell'ordine di tabulazione. È come se Me.MyFld.SetFocus
fosse ignorato.
Come si mantiene la messa a fuoco su questo campo dopo che DoStuff()
è terminato?
Private Sub MyFld_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyReturn Then
DoStuff
Me.MyFld.SetFocus
End If
End Sub
provare evento più adatto - DopoAggiornamento della casella di testo – 4dmonster
Hai provato passando attraverso con il debugger per vedere se niente altro è in esecuzione dopo che il 'metodo SetFocus'? – techturtle
@ 4dmonster, se utilizzo un altro evento, come faccio a sapere se la pressione corrente del tasto è il tasto Invio? 'AfterUpdate' non lo include e' OnKeyPress' è per caratteri normali, non il tasto invio (o così ho letto) – PowerUser