PDA

View Full Version : Aiuto, gestione eventi in Visual Basic


Splacchj
22-10-2011, 20:23
salve, premetto di essere un neofita di questo linguaggio. E' per questo che mi rivolgo a voi. infatti ho un problema , vorrei che il mio programma facesse determinate cose SOLO al verificarsi di un evento.. in pratica vorrei introdurre un evento in un ciclo di controllo ( che sarebbe il ciclo if), in modo tale che, solo quando accade questo evento ( che nel mio caso è il Mousehover) si verificano le conseguenze... come posso fare?

io avevo pensato in questo modo ma non va

Public Sub Form1_MouseHover(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.MouseHover
if me.MOUSEHOVER = true

ISTRUZIONI VARIE
end if
End Sub

P.S.
vorrei sapere che cosa significa "e As System.EventArgs"??

Splacchj
23-10-2011, 18:00
up?

Splacchj
26-10-2011, 19:20
nessuno??

daxdaxdax
26-10-2011, 21:22
Ciao :)

Spero di aver capito bene la logica..
Una strada possibile è valorizzare una variabile di appoggio all'invocare degli eventi che ritieni opportuni, in secondo luogo controllare questa variabile ciclicamente mediante un timer per eseguire o meno istruzioni:



Public Class Form1

Private CheckEvent As Boolean

Private Sub Form1_MouseHover(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.MouseHover
CheckEvent = True
End Sub

Private Sub Form1_MouseLeave(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.MouseLeave
CheckEvent = False
End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
If CheckEvent Then Me.Text = Date.Now.ToString
End Sub

End Class

Servirà impostare la proprietà Enabled del Timer a True di default .

un ciclo di controllo ( che sarebbe il ciclo if),
Attenzione a una cosa: l'istruzione if è una condizione.

Classe EventArgs (http://msdn.microsoft.com/it-it/library/system.eventargs(v=vs.95).aspx)

Ciao ciao :)

Splacchj
29-10-2011, 11:34
Ciao :)

Spero di aver capito bene la logica..
Una strada possibile è valorizzare una variabile di appoggio all'invocare degli eventi che ritieni opportuni, in secondo luogo controllare questa variabile ciclicamente mediante un timer per eseguire o meno istruzioni:



Public Class Form1

Private CheckEvent As Boolean

Private Sub Form1_MouseHover(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.MouseHover
CheckEvent = True
End Sub

Private Sub Form1_MouseLeave(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.MouseLeave
CheckEvent = False
End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
If CheckEvent Then Me.Text = Date.Now.ToString
End Sub

End Class

Servirà impostare la proprietà Enabled del Timer a True di default .


Attenzione a una cosa: l'istruzione if è una condizione.

Classe EventArgs (http://msdn.microsoft.com/it-it/library/system.eventargs(v=vs.95).aspx)

Ciao ciao :)

grazie mille :9 un'ultima domanda, cos'è un timer nel visual basic?

daxdaxdax
30-10-2011, 01:24
Di nulla :)

Il timer è un controllo che esegue determinato codice ciclicamente, il delay di questo "ciclo" si determina in millisecondi mediante la proprietà Interval e la sua attivazione mediante la proprietà Enabled.

L'evento che viene invocato dal timer si chiama Tick, quindi ad ogni tick del timer verranno eseguite tutte le istruzioni scritte nella sub Timer1_tick

Splacchj
30-10-2011, 14:05
ok ho capito grazie mille! :)