(Wie)kann man Klassen mit verschiedenen Steuerelementen ansprechen und zurückgreifen?

Trynfail

Grünschnabel
Hi,

Ich habe das Problem, das ich ein und dieselbe Funktion auf verschiedene Auslöseaktionen durchführen möchte. Dabei soll diese Aktion aber von dem Auslöser abhängen.(ok es ist dann wohl nicht mehr die selbe Aktion, aber fast)

also:
C#:
 textBox1.KeyDown += new KeyEventHandler(textBox1_KeyDown);
 textBox2.KeyDown += new KeyEventHandler(textBox1_KeyDown);

 private void textBox1_KeyDown(object sender, KeyEventArgs e)
 {
     textBox1.Text = e.KeyValue.ToString();
}
Natürlich beschreibe ich auf diese Weise nur die erste textBox. Muss ich um auf die zweite textBox zugreifen zu können eine neue Klasse erstellen mit textBox2_KeyDown und eben die 1 durch eine 2 im Text ersetzen? oder kann man irgendwie "herausbekommen" wodurch die Aktion ausgeführt wurde? (also ob durch textBox1 oder 2) und das dann direkt variabel in der Klasse angeben?

nach der Art:
C#:
     Auslöser.Text = e.KeyValue.ToString();
 
Zuletzt bearbeitet von einem Moderator:
Hi und Willkommen bei tutorials.de,

was ist denn mit dem Parameter sender?

Bitte (vor allem bei längeren Codestücken) Codetags verwenden
(für C#: [code=csharp]...[/code]).

Gruß
 
was ist denn mit dem Parameter sender?

Was soll mit dem Parameter sein?

Wofür der wirklich gut ist weiß ich nicht :-/, aber wenn ich ihn weglasse geht garnichts^^.
Wenn ich ihn mir in einer textBox anzeigenlassen will mit sender.ToString bekomm ich auch keine Ausgabe.

Wenn du die Frage so gemeint hast, das ich ihn dafür verwendent sollte, weil das seine Funktion ist, weiß ich nicht wie (mit welchem Befehl) ich das machen sollte.
 
In gewisser Form ist das die Textbox, für die das Event aufgerufen wird.

Weil es Events ja auch für andere Sachen außer Textboxen gibt, ist sender ein object.
Da "passt" alles Mögliche rein.

Wenn du dein Event aber nur für Textboxen verwendest
ist es sicher eine Textbox und kann gecastet werden:
C#:
((TextBox)sender).Text = e.KeyValue.ToString();
 
Zurück