Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Controllo form in primo piano rispetto ad un'altro
domenica 18 marzo 2012 - 12.51
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Elenco Tags
VB.NET
|
.NET 4.0
|
Windows 7
|
Windows Vista
|
Windows XP
|
Visual Studio 2010
|
Visual Studio 2008
gabry90
Profilo
| Newbie
45
messaggi | Data Invio:
dom 18 mar 2012 - 12:51
salve..ho questa domanda.
Io ho due form. Il primo ha dentro un pulsante che al click apre il secondo form in un nuovo thread. e fin qui sono a posto
ora il secondo form deve controllare che quando premo un tasto deve fare una determinata cosa, ora il controllo sui tasti lo gia fatto, il problema e che io voglio che il controllo sul keypress me lo faccia solo ed esclusivamente quando il secondo form è in primo piano rispetto al primo. il problema e che non esiste un evento del genere, ho provato focus ma non funziona. quindi ho messo il controllo in un timer che quando si verifica l'evento mouseenter il timer si attiva e quando si verifica l'evento mouseleave si ferma. il vero problema che non riesco a risolvere e che dato che ci sono dei componenti all'interno devo per forza spostarmi con il mouse fuori dal controllo e posizionarlo sul form. come faccio a risolvere questa cosa??? vorrei che quando si facesse click sul secondo form e quindi che quando venisse in primo piano rispetto al primo mi attivasse il timer senza dovermi preoccupare dove è posizionato il mouse??? esiste qualche evento del genere? perchè io le ho provate tutte ma sto divenmtando matto :)
Giamp72
Profilo
| Junior Member
115
messaggi | Data Invio:
mar 10 apr 2012 - 15:15
Hai provato gli eventi Activate e Paint del form?
Giamp72
gabry90
Profilo
| Newbie
45
messaggi | Data Invio:
dom 15 apr 2012 - 22:15
si tutti...e nessuno che funge..alternative?
Giamp72
Profilo
| Junior Member
115
messaggi | Data Invio:
lun 16 apr 2012 - 07:32
Prova a gestire il keypress su entrambi i form ed usa zorder per sapere chi sta davanti...
Giamp72
gabry90
Profilo
| Newbie
45
messaggi | Data Invio:
lun 16 apr 2012 - 09:29
non ho capito cosa vuoi dire? devo inserire l'evento in ogni controllo nel form compreso? cosa è zorder?
Giamp72
Profilo
| Junior Member
115
messaggi | Data Invio:
mar 17 apr 2012 - 10:07
Scusa zOrder esisteva in VB6 in vbNet mi pare la variabile sia TopLevel.
form.toplevel ti torna true se la form è in primo piano
in questo modo se gestisci su entrambi i form la routine KeyPress puoi decidere cosa fare in funzione del topLevel del form che ti interessa.
Ti scrivo al volo un esempio di ciò che intendo dire...
'apriamo i due form
dim form1 as new ftest1
dim form2 as new ftest2
sub KeyPress (sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles ftest1.keypress
if form1.toplevel then exit sub
If InStr("0123456789", e.KeyChar) = 0 Then
msgbox "hai premuto una lettera"
else
msgbox "hai premuto un numero"
End If
end sub
sub KeyPress (sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles ftest2.keypress
if form1.toplevel then exit sub
If InStr("0123456789", e.KeyChar) = 0 Then
msgbox "hai premuto una lettera"
else
msgbox "hai premuto un numero"
End If
end sub
fammi sapere se risolvi.
ciao
Giamp72
gabry90
Profilo
| Newbie
45
messaggi | Data Invio:
mar 17 apr 2012 - 14:44
no ma non è questo che intendo...quello che voglio dire e che se io ho un form e al suo interno una picturebox e voglio che con l'evento keypress sul form mi faccia una determinata cosa. il problema è che non funziona quando clicco sulla picturebox. ma di fatto la picturebox sta nel form. io voglio che mi faccia quell'evento keypress anche quando sono sulla picturebox o qualsiasi altro componente, l'importante e che il mouse sia nel form :)
Giamp72
Profilo
| Junior Member
115
messaggi | Data Invio:
mar 17 apr 2012 - 15:42
Caro Gabry90.. non mi pare avessi chiesto la stessa cosa... hai cominciato con focus su due form e hai finito con un solo form con più oggetti all'interno...
eheheh hai le idee un po confuse?!?!
Ad ogni modo se il problema è questo, la soluzione è semplicissima!!
gestisci il keypress sul form, ma abilita anche il flag KeyPreview=True sul form!
Abilitando KeyPreview si fa in modo che tutti gli eventi KeyPress relativi ad oggetti dentro il form vengano gestiti dalla KeyPress del form (oltre che dal keypress del singolo oggetto)..
fammi sapere
ciao
Giamp72
gabry90
Profilo
| Newbie
45
messaggi | Data Invio:
mar 17 apr 2012 - 15:54
non è che ho detto due cose diverse e che semplicemente ho fatto un esempio un po piu semplice del mio problema per chiarire cosa intendevo dire. chiedo cmq scusa per essermi espresso male :)
grazie cmq per la risposta...come dici te funziona.
Grazie mille.
Giamp72
Profilo
| Junior Member
115
messaggi | Data Invio:
mar 17 apr 2012 - 16:45
L'importante è che tu abbia risolto :-)
ciao e buon lavoro.
PS: ricordati di indicare che il post è risolto.
Giamp72
gabry90
Profilo
| Newbie
45
messaggi | Data Invio:
mar 5 giu 2012 - 11:54
chiudo
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !