Sto cercando di creare un modulo in C# che non possa accettare lo stato attivo, ovvero quando faccio clic su un pulsante nel modulo, il focus non viene rubato dall'applicazione che al momento ha lo stato attivo.Come posso creare un modulo "unfocusable" in C#?
Vedere la tastiera su schermo di Windows per un esempio. Si noti che quando si fa clic su un pulsante, lo stato attivo non viene preso dall'applicazione attualmente in uso.
Come posso implementare questo comportamento?
Aggiornamento:
scopre che è così semplice come sovrascrivendo la proprietà CreateParams
e aggiungendo WS_EX_NOACTIVATE
per lo stile della finestra estesa. Grazie per avermi indicato nella giusta direzione!
Sfortunatamente questo ha l'indesiderabile effetto collaterale che disturba il movimento del modulo, cioè puoi ancora trascinare il modulo sullo schermo ma il bordo della finestra non viene visualizzato durante il trascinamento, quindi è difficile posizionarlo con precisione.
Se qualcuno sa come risolvere questo sarebbe apprezzato.
Possibile duplicato di [Mostra un modulo senza rubare lo stato attivo?] (Https://stackoverflow.com/questions/156046/show-a-form-without-stealing-focus) – rugk