Form semplicissimo, al Load setto alcuni parametri e posiziono alcuni controlli.
Il Form contiene una Text Box, che seleziono al Load con un TextBox1.Select().
Se imposto Form.TopMost = False, al lancio il Form si attiva (come ovvio), il cursore lampeggia nella TextBox e se premo qualche tasto... scrivo.
Se imposto Form.TopMost = True, al lancio il Form si attiva (come ovvio), il cursore lampeggia nella TextBox e se premo qualche tasto..... non succede niente!!!
Il form è attivato anche nel secondo caso, come verifico tramite:
L' immagine appare, il cursore lampeggia, sembrerebbe tutto pronto a recepire l' input da tastiera... ma non scrivo niente.codice:Private Sub FrmPanel1_Activated(bla bla) pic1.Image = My.Resources.verdescuro End Sub Private Sub FrmPanel1_Deactivate(bla bla) pic1.Image = Nothing End Sub
Non serve a nulla neanche inserire un Me.BringToFront. Devo per forza usare la API ForceForegroundWindow.
C' è qualcosa che mi sfugge??
NOTA: se in Private Sub FrmPanel1_Shown scrivo:
Debug.Print("MeHandle: " & Me.Handle.ToString & " -GetForegroundWindow: " & NativeMethods.GetForegroundWindow.ToString)
ottengo: MeHandle: 2818728 -GetForegroundWindow: 65620
dove 65620 è l' handle della ShellTray...............