Mam formularz dostępu z polem tekstowym, który ma na celu umożliwienie wielokrotnego wpisywania numeru, wciskania klawisza Enter i zezwalania skryptowi na wykonywanie czynności. Aby uzyskać prędkość, pole powinno zachować ostrość po wykonaniu DoStuff()
.Dlaczego mój .setfocus jest ignorowany?
Jednakże, chociaż jestem pewien, że uruchamiany jest DoStuff()
, fokus zawsze przechodzi do następnego pola w kolejności tabulacji. To tak, jakby ignorowano Me.MyFld.SetFocus
.
Jak zachować koncentrację na tym polu po DoStuff()
?
Private Sub MyFld_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyReturn Then
DoStuff
Me.MyFld.SetFocus
End If
End Sub
spróbować bardziej odpowiednie zdarzenie - AfterUpdate tekstowym – 4dmonster
Czy próbowałeś przechodzeniu z debuggera aby sprawdzić, czy cokolwiek innego jest uruchomiony po 'metody SetFocus'? – techturtle
@ 4dmonster, jeśli używam innego zdarzenia, skąd mam wiedzieć, czy bieżącym klawiszem jest klawisz Enter? 'AfterUpdate' nie uwzględnia tego i' OnKeyPress' jest dla zwykłych znaków, a nie klawisza Enter (lub tak, jak czytałem). – PowerUser