Sono a mio agio con gli eventi e gli handler Vb.Net. Qualcuno può aiutarmi con come creare i gestori di eventi in C# e generare eventi.Come aumentare l'evento utilizzando addHandler
risposta
public MyClass()
{
InitializeComponent();
textBox1.LostFocus += new EventHandler(testBox1_LostFocus);
}
void testBox1_LostFocus(object sender, EventArgs e)
{
// do stuff
}
In C# 2 e fino aggiunti i gestori di eventi come questo:
yourObject.Event += someMethodGroup;
Qualora la firma del someMethodGroup
corrisponda alla firma del delegato di yourObject.Event
.
In C# 1 è necessario creare esplicitamente un gestore di eventi come questo:
yourObject.Event += new EventHandler(someMethodGroup);
e ora le firme del gruppo metodo, eventi, e EventHandler
devono corrispondere.
Gli sviluppatori che conoscono solo C#, o solo VB.Net, potrebbero non sapere che questa è una delle maggiori differenze tra VB.NET e C#.
I'll shamelesssly copy questa bella spiegazione degli eventi VB: VB utilizza una sintassi dichiarativa per allegare eventi. La clausola Handles viene visualizzata nel codice che gestirà l'evento. Se appropriato, più metodi possono gestire lo stesso evento e più eventi possono essere gestiti con lo stesso metodo. L'uso della clausola Handles si basa sul modificatore WithEvents che appare sulla dichiarazione della variabile sottostante come un pulsante. È inoltre possibile associare i gestori di proprietà utilizzando la parola chiave AddHandler e rimuoverli con RemoveHandler. Per esempio
Friend WithEvents TextBox1 As System.Windows.Forms.TextBox
Private Sub TextBox1_Leave(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles TextBox1.Leave
'Do Stuff '
End Sub
In C# non è possibile utilizzare la sintassi dichiarativa. Si usa + = che è sovraccarico per agire come AddBandler VB.Net. Ecco un esempio rubato spudoratamente da tster's answer:
public MyClass()
{
InitializeComponent();
textBox1.Leave += new EventHandler(testBox1_Leave);
}
void testBox1_Leave(object sender, EventArgs e)
{
//Do Stuff
}
- 1. reactive-banana: come creare un AddHandler?
- 2. AddHandler non funziona per i file .php - Apache 2.4
- 3. Passare AddressOf a una funzione in VB.NET per utilizzare AddHandler
- 4. In vb.net, se uso AddHandler, Devo usare RemoveHandler?
- 5. aumentare/diminuire il valore di un campo utilizzando jQuery
- 6. aumentare le dimensioni di un file utilizzando mmap
- 7. Aumentare un evento quando Proprietà modificata utilizzando Reflection
- 8. Come aumentare il buffer dbms_output?
- 9. Come aumentare la velocità dell'emulatore?
- 10. Come aumentare le connessioni massime in postgres?
- 11. Aumentare e diminuire i valori per gli input utilizzando jquery
- 12. Come esporre e aumentare eventi personalizzati per un controllo utente winforms vb.net
- 13. Come aumentare il contenuto ContentControl di WPF?
- 14. Perché non compare alcuna MouseMoveEvent - o, come utilizzare AddHandler per l'evento del mouse mossa
- 15. Impossibile aumentare memory_limit con ini_set()
- 16. Aumentare max_execution_time in PHP?
- 17. Aumentare lo spazio permgen
- 18. Seek Bar Aumentare l'altezza
- 19. come aumentare il timeout della maglia WS
- 20. Come aumentare la velocità di deserializzazione?
- 21. Come aumentare la dimensione della finestra DOXBox?
- 22. Come aumentare ulimit sull'istanza di Amazon EC2?
- 23. Come posso aumentare la velocità di scorrimento?
- 24. Come posso aumentare la dimensione dell'heap .NET?
- 25. MSTest: come aumentare il tempo di test
- 26. Come aumentare l'altezza di ScrollView in Android?
- 27. Come posso aumentare la memoria JVM?
- 28. Come aumentare la lunghezza massima dell'URL?
- 29. Come aumentare il timeout in CasperJS
- 30. Come aumentare le prestazioni SSL del server
Devi essere più specifico. – tster
Penso che voglia solo sapere come aggiungere gestori di eventi e generare eventi in C#, e sa già come farlo in VB. –
Mitesh, ho modificato parecchio la tua domanda. Stavo solo cercando di migliorare l'inglese. Se ho frainteso quello che stavi chiedendo, mi dispiace, ti preghiamo di cambiarlo di nuovo. – MarkJ