Gestire più eventi dello stesso controllo

lunedì 11 aprile 2005 - 13.08

coyoteX Profilo | Newbie

Salve spero possiate aiutarmi.
E' possibile in vb.net gestire più eventi dello stesso controllo?
Faccio un esempio:
Se considero un datepicker e costruisco un nuovo evento

Public Sub prova(ByVal sender As Object, ByVal e As System.EventArgs) Handles DateTimePicker2.DropDown, DateTimePicker2.Leave
--
--
end sub

come faccio a capire quale evento è scattato?
Vi ringrazio in anticipo

Andy Profilo | Senior Member

..scusa la domanda banale, ma non puoi scrivere 2 Sub differenti, in cui ognuna gestisce un evento?

coyoteX Profilo | Newbie

..scusa la domanda banale, ma non puoi scrivere 2 Sub differenti, in cui ognuna gestisce un evento?

Il fatto è che vorrei gestire 4 eventi e mi servono anche su altre form quindi vorrei saprere ( se c'è ) un modo per gestire più eventi dello stesso controllo

Andy Profilo | Senior Member

Una soluzione per esempio è crearti una tua Sub pubblica indipendente dagli eventi, es.

Public Gestisce_Evento(byval x as integer, ecc...)

End Sub

e la richiami per ogni evento che devi gestire e che fa le stesse cose:

Private Sub mDateTimePicker_DropDown(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mDateTimePicker.DropDown

Gestisce_Evento(a)

End Sub

Private Sub mDateTimePicker_Leave(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mDateTimePicker.Leave

Gestisce_Evento(b)

End Sub



Oppure, crei la procedura in un evento, e in tutti gli altri eventi rimandi l'esecuzione all'evento che hai configurato:

Private Sub mDateTimePicker_DropDown(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mDateTimePicker.DropDown


...esecuzione della tua procedura di gestione...


End Sub

Private Sub mDateTimePicker_Leave(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mDateTimePicker.Leave

mDateTimePicker_DropDown(sender, e)

End Sub

coyoteX Profilo | Newbie

Una soluzione per esempio è crearti una tua Sub pubblica indipendente dagli eventi, es.

Public Gestisce_Evento(byval x as integer, ecc...)

End Sub.....

Veramente io vorrei creare una cosa del genere

Public Sub prova(ByVal sender As Object, ByVal e As System.EventArgs) Handles DateTimePicker2.DropDown, DateTimePicker2.Leave, DateTimePicker2.CloseUp

if evento=DateTimePicker2.DropDown then
'codice1
end if

if evento=DateTimePicker2.Leave then
'codice2
end if

............
End Sub

Secondo te è fattibile?
C'è qualche proprietà che mi dice quale evento è scattato?
Ti ringrazio cmq ;-)

Andy Profilo | Senior Member

..di nulla, figurati..

Beh, a me capita di procedere nel primo modo, ossia creare una procedura comune che viene chiamata in più eventi..per differenziare l'evento all'interno di essa puoi sempre passare un boolean come parametro, per accorgerti di chi ti chiama la procedura..


Ciao.
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 !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5