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
ASP.NET 2.0 / 3.5 / 4.0
Copiare gestori di eventi tra Control
venerdì 28 luglio 2006 - 18.25
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
massimobonanni
Profilo
| Newbie
4
messaggi | Data Invio:
ven 28 lug 2006 - 18:25
Ho la necessità di copiare i gestori di avengi agganciati su di un Control su di un altro.
Ho visto l'esistenza della collection Events (in sola lettura) che permette di accedere ai delegate degli eventi a partire dalla Key.
Purtroppo non ho trovato nessun modo per ottenere l'elenco delle keys?
Se recupero la signature degli eventi utilizzando la reflection, posso utilizzare il nome degli eventi come key?
In quel caso se utilizzo il metodo AddHandler della collection Events del destinatario per attaccare ciò che ho ottenuto dall'item della collection evetnts del sorgente, riesco a fare ciò che voglio?
Grazie per qualsiasi suggerimento.
Massimo
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
sab 29 lug 2006 - 01:31
ciao,
se hai bisogno di usare 1solo gesteore per gli stessi eventi di diversi controlli allora puoi usare questa forma:
-----------
c#
-----------
....
mioBtn1.Click += new EventHandler(mioBtn1_Click);
mioBtn2.Click += new EventHandler(mioBtn1_Click);
mioBtn3.Click += new EventHandler(mioBtn1_Click);
mioBtn4.Click += new EventHandler(mioBtn1_Click);
}
void mioBtn1_Click(object sender, EventArgs e)
{
....
-----------
vb.net
-----------
...
AddHandler mioBtn1.Click, AddressOf Me.mioBtn1_Click
AddHandler mioBtn2.Click, AddressOf Me.mioBtn1_Click
AddHandler mioBtn3.Click, AddressOf Me.mioBtn1_Click
AddHandler mioBtn4.Click, AddressOf Me.mioBtn1_Click
Private Sub mioBtn1_Click(ByVal sender As Object, ByVal e As EventArgs)
...
dove "mioBtnx" è 1 bottone, basta che lo fai per gli eventi che vuoi tu...
ciao.
Matteo Raumer
MCAD ... .net addicted :-)
http://blogs.dotnethell.it/freeteo
massimobonanni
Profilo
| Newbie
4
messaggi | Data Invio:
sab 29 lug 2006 - 16:32
Il problema è più generico: io ho un oggetto di cui non so a priori quali siano gli eventi (nè come si chiamao, ne quali hanno un gestore attaccato) e devo costruirne un'altro identico con gli tessi eventi.
Quindi non posso utilizzare la tecnica da te proposta in quanto non so se Click (ad esempio) è un evento previsto dall'oggetto.
massimobonanni
Profilo
| Newbie
4
messaggi | Data Invio:
lun 31 lug 2006 - 11:22
Infatti: sto procedendo in questo modo:
1) recupero gli eventi tramite GetEvents() di Type:
Dim sourceEvents As EventInfo() = oSource.GetType.GetEvents()
2) ciclo all'interno di ogni EventInfo
For Each [event] As EventInfo In sourceEvents
3) dovrei recuperare il delegate relativo all'evento eventualmente agganciato all'oggetto (ma ancora non ho trovato il modo)
dim eventDelegate As [Delegate] = ' qui dovrei recuperare il delegate dell'evento
4) se ottengo il delegate lo aggancio all'oggetto di destinazione
If Not eventDelegate Is Nothing Then
[event].AddEventHandler(oTarget, eventDelegate)
Se solo riuscissi a ricavare il delegate forse funzionerebbe.
Nessuno ha idee??
Massimo
BenHur73
Profilo
| Newbie
1
messaggi | Data Invio:
mar 5 dic 2006 - 16:09
Ciao,
ho un problema simile al tuo, avevi trovato una soluzione?
massimobonanni
Profilo
| Newbie
4
messaggi | Data Invio:
mar 5 dic 2006 - 18:16
No, purtroppo ancora no!
Il primo che la trova lo comunica!
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 !