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 - [VB.NET] Determinare chi ha chiamato l'evento
Forum - C# / VB.NET - [VB.NET] Determinare chi ha chiamato l'evento

Avatar
samehada (Normal User)
Newbie


Messaggi: 10
Iscritto: 06/06/2009

Segnala al moderatore
Postato alle 14:11
Lunedì, 08/06/2009
Come faccio all'evento closing di un form, per esempio, a capire se a generarlo è stato il button1 o 2, e in base ad esso dare un comando?
avevo pensato

Codice sorgente - presumibilmente Delphi

  1. If sender is Button1
  2.        'fa qualcosa
  3. Else
  4.       'qualcos'altro
  5. End If



ma non è quello il codice....:D

PM Quote
Avatar
ruggy94 (Member)
Guru


Messaggi: 890
Iscritto: 21/04/2008

Segnala al moderatore
Postato alle 14:48
Lunedì, 08/06/2009
Nel closing di un form, il sender è sempre il Form. Per questo non ti funziona. Dovrai controllare il sender di un altro evento...non so come hai strutturato il codice.

Ultima modifica effettuata da ruggy94 il 08/06/2009 alle 14:56


"Se vuoi che una funzione di un programma non venga mai trovata, descrivila nella documentazione"
PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 14:57
Lunedì, 08/06/2009
L'evento closing è sempre generato dal form stesso, ossia sender punta sempre al form che sta per essere chiuso. E' impossibile sapere da dove è stato lanciato il metodo che ha generato l'evento. Puoi rimediare solo usando una variabile locale.


"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 Quote
Avatar
samehada (Normal User)
Newbie


Messaggi: 10
Iscritto: 06/06/2009

Segnala al moderatore
Postato alle 20:47
Lunedì, 08/06/2009
Scusate, credo di aver capito che si puo fare ma non ho capito come...

PM Quote
Avatar
ruggy94 (Member)
Guru


Messaggi: 890
Iscritto: 21/04/2008

Segnala al moderatore
Postato alle 21:02
Lunedì, 08/06/2009
Se al click di uno dei due button il form si deve chiudere puoi fare:
Codice sorgente - presumibilmente VB.NET

  1. Private Sub Button_Click(byval sender as system.object, byval e as system.eventargs) Handles button1.click, button2.click
  2. If sender is button1 then
  3.  
  4. else
  5.  
  6. end if
  7. Form1.Close() 'oppure Me.Close()
  8. End Sub


oppure ti adatti il codice se, oltre a chiudere il form, i pulsanti fanno anche altre cose.
Se invece il caso è diverso (non so come possa essere) basta che crei una variabile (come ha detto Totem) e le assegni il valore del pulsante che viene cliccato. Ma per farlo, devi comunque gestire l'evento Click del button, quindi la soluzione migliore mi sembra la prima.
Magari il tuo caso è ancora un altro, ma siccome non hai postato codice, non riesco ad immaginarne uno diverso. :k:

Ultima modifica effettuata da ruggy94 il 08/06/2009 alle 21:03


"Se vuoi che una funzione di un programma non venga mai trovata, descrivila nella documentazione"
PM Quote