Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Dubbio sull'utilizzo di Component.Events
Forum - C# / VB.NET - Dubbio sull'utilizzo di Component.Events

Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 1:00
Giovedì, 01/01/1970
EDIT (ho risolto):
allora, per una volta devo dare la colpa della mia confusione da MSDN che prima scrive una cosa e poi ne fa un'altra :_doubt:
Basti guardare questo articolo:
http://msdn.microsoft.com/en-us/library/yt1k2w4e.aspx
Ogni evento ha un suo object key, peccato che però la definizione di key dell'AddHandler (e RemoveHandler) dica tutt'altra cosa 8-|


Ciao a tutti,
negli ultimi giorni stavo creando un componente non visuale perciò mi stavo informando su tutte le cose da fare.

Ho però notato che Component, la mia superclasse, espone una proprietà il cui scopo non mi è chiaro.
MSDN non ne parla molto, se volete vedere, questo è il link:
http://msdn.microsoft.com/en-us/library/system.componentmo ...

Io immagino che l'EventHandlerList ritornato serva per distruggere tutti gli eventi e che quindi il suo metodo Dispose() venga richiamato da quello di Component.
Purtroppo, come ho già detto, non trovo documentazione e quindi le mie sono solo supposizioni :asd:
Qualcuno può illuminarmi?

Inoltre vorrei avere un'altra conferma:
quando chiamo AddHandler o RemoveHandler dell'oggetto ritornato da Events, al parametro key devo passare l'instanza della mia classe (this o Me per intenderci)?

Grazie a chiunque si prenda la briga di rispondermi :k:


EDIT (per Totem):
quindi dovrei scrivere una cosa simile? ([...] indica che non ho voglia di scrivere tutto il codice necessario)
Codice sorgente - presumibilmente C#

  1. public class MyComponent:Component
  2.     {
  3. [...]
  4.         public event EventHandler MyEvent
  5.         {
  6.             add { [...] Events.AddHandler(this, value); }
  7.             remove { [...] Events.RemoveHandler(this, value); }
  8.         }
  9. [...]


Comunque avevo letto la descrizione di AddHandler solo che ero indeciso se passare l'oggetto dove è dichiarato l'evento o quello che ha il metodo handler :-|

Ultima modifica effettuata da il 12/08/2011 alle 0:53
PM
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Up
1
Down
V
Segnala al moderatore
Postato alle 11:23
Mercoledì, 10/08/2011
Si tratta semplicemente di una collezione che espone i gestori di evento associati agli eventi del componenti. Nota bene che non tutti gli eventi sono gestiti, quindi si tratta di un sottoinsieme dei delegati d'evento del componente stesso. E' utile perché mostra quali eventi vengono gestiti, da quanti metodi e da quali metodi. Inoltre, come hai detto, può anche essere usato per rilasciare correttamente gli handlers quando l'istanza viene distrutta, onde generare memory leaks.
Per quanto riguarda AddHandlers:
http://msdn.microsoft.com/en-us/library/system.componentmo ...
Come vedi c'è scritto:
Testo quotato

key
Type: System.Object
The object that owns the event.


Il sender dell'evento è l'oggetto che lo ha lanciato. Generalmente è lo stesso oggetto che ne contiene la definizione. - Il Totem - 11/08/11 11:24


"Infelici sono quelli che hanno tanto cervello da vedere la loro stupidità."
(Fligende Blatter)

"Dubitare di se stessi è il primo segno d'intelligenza."
(Ugo Ojetti)
PM
Usa i commenti per chiedere spiegazioni o ringraziare le risposte.