[C#] Sender Variablen auslesen

krizzelfix

Commander
Registriert
Sep. 2005
Beiträge
2.626
Hallo zusammen,

wie kann ich in C# bei einem Event die sender Variable auslesen? Ich habe in einer Form eine ListBox in der ein Title steht. Wenn ich die ListBox fülle übergebe ich Daten vom Typ SongInfo. Wie kann ich dann im DoubleClick Event auf alle Daten der SongInfo Klasse zugreifen?
Wenn ich mir die Daten mit dem Debugger angucke finde ich die. Aber in der Entwicklungsumgebung kann ich die Eigenschaften und Methoden ja nicht aufrufen, da sie ja noch nicht bekannt sind.
Kann ich irgendwie auf die Daten zugreifen, oder muss ich da eine Sucher über den Liednamen einbauen?

Grüße

tewes
 
Ich nehme an, es geht Dir um den EventHandler für das DoubleClick-Ereignis der ListBox. Innerhalb der Methode steht Dir ja ein Objekt namens sender zur Verfügung. Der Sender ist immer das Control, auf dem das Ereignis stattgefunden hat, in diesem Fall also die ListBox. Wahrscheinlich besteht das Problem für Dich darin, dass der Sender eben nur vom Typ Object geliefert wird. An dieser Stelle musst Du mit Casting (explizite Typumwandlung) arbeiten. Das funktioniert beispielsweise so:
Code:
(ListBox)sender
Es wird also einfach der gewünschte Typ in Klammern davor geschrieben. Wenn Du nun auf eine Methode oder Eigenschaft der ListBox zugreifen willst, auf welcher der Doppelklick stattgefunden hat, musst Du das etwa so formulieren:
Code:
((ListBox)sender).Items.Clear();
Wie Du bereits siehst, wird das ein bisschen Klammerarbeit. Um nun das ausgewählte Item der ListBox in dem von Dir angegeben Typ abzurufen, musst Du folgendes notieren:
Code:
((SongInfo)((ListBox)sender).SelectedItem)
Die SelectedItem-Eigenschaft der ListBox gibt das entsprechende Element nämlich auch nur als Object zurück. Daher muss es ebenfalls erst wieder in Deinen SongInfo-Typ konvertiert werden.
 
Ich habs jetzt in einer Try/Catch-Anweisung. Ist vom prinzip her gleich.

Grüße

tewes
 
Zurück
Oben