C# Definieren eines Ereignisses in Windows Forms-Steuerelementen

  • Ersteller Ersteller Nichael-E
  • Erstellt am Erstellt am
N

Nichael-E

Gast
Schönen guten Tag zusammen,
mittlerweile habe ich mich seit einem halben Jahr nur mit Konsolen Anwendungen beschätftig und bin mit diesem Kapitel so langsam durch. Nun habe ich seit ungefähr 1 Monat mit den "Windows Forms-Steuerelementen" angefangen und es gibt doch nix besseres als ne schöne Oberfläche. Jedenfalls besser als ne triste Konsole :D

Ein beliebtes Beispiel sind doch immer wieder Taschenrechner und vor allem wie sowas entsteht und welchen Code man dazu schreiben muss. Ein beliebtes Ziel zum lernen sind Videos, genauer gesagt als die von YouTube. Und davon gibt es mehr als reichlich, die ich mir auch angesehen habe.

Bei einigen Videos ist mir aufgefallen, was ich nicht verstehe...
Jedes Ereignis ("Events") wird doch durch die "Windows Forms-Steuerelemente" definiert. Warum gehen manche hin, markieren zum Beispiel alle Zahlen von "0 - 9" (oder auch die Operatoren), gehen dann unter ""Eigenschaften => Click" vergeben dort einen Namen (Beispiel "Numbers") und es erscheint im Code diese Methode Numbers...

Code:
private void Numbers(object sender, EventArgs e)
{
   ... Code ...
}

Kann mir bitte mal jemand sagen, warum das (als Beispiel) in einem Taschenrechner so gemacht wird? Die Logik dazu, warum ein Methode (Ereignishandler) "Numbers" in dem Code eingefügt wird, verstehe ich nicht so ganz. Genauer gesagt: Ich verstehe nicht, wie die Zahlen von "0 - 9" dann per Klick Ereignis angesteuert werden. Wißt Ihr, was ich meine?

Beispiel: Hier wird ganz normal ein Ereignis für die Taste [1] erstellt...
Code:
private void Button_1_Click(object sender, EventArgs e) // Taste [1]
{
TextBox1.Text += Button_1.Text;
}

Nun hat man die neu erstellte Methode (Ereignishandler) "Numbers" wo auch dann etwas drin steht, aber nicht das, was ich oben beschrieben habe ...

Code:
... {TextBox1.Text += Button_1.Text;}
Wo ist denn diese Codezeile hin? Wird das ganze zu einem Ereignis zusamme gefasst? Versteh ich irgendwie nicht...
 
Zuletzt bearbeitet von einem Moderator:
Lösung
N
tollertyp schrieb:
Es ist aufgrund von weniger duplizierem Code (redundantem Code) aber auch für das Verständnis häufig sinnvoll, Event-Handler, die ähnliche Ereignisse behandeln, in einer Methode unterzubringen.
... in einer Methode unterzubringen. Genau das wars !!! Jetzt hab ich es verstanden!

tollertyp schrieb:
Den Namen "Numbers" für einen Event-Handler halte ich aber für nicht sinnvoll. Eher etwas wie "NumberClick".
Genau so sehe ich es auch!

cx01 schrieb:
Vorteil ist weniger duplizierter Code. Ansonsten hast du halt 9 Event-Handler, die alle mehr oder weniger dasselbe machen.
Aha. Jetzt gibt das ganze auch einen Sinn ;)

Danke an alle! Ihr seit echt Spitze :daumen:
Du kannst für jeden Button einen eigenen Event-Handler schreiben oder einen gemeinsamen Event-Handler für alle Buttons. Beide Ansätze sind vollkommen in Ordnung.

Im zweiten Fall musst du dann halt das "sender" Argument benutzen, um rauszufinden, welcher Button gedrückt wurde.
C#:
private void Numbers(object sender, EventArgs e) {
    var button = sender as Button;
    // nun kannst du z. B. button.Text auslesen
}

Wenn also auf den Knöpfen nur die Zahlen von 0-9 stehen, dann kannst du "button.Text" benutzen, um die angeklickte Zahl zu bekommen.
 
  • Gefällt mir
Reaktionen: Michael-D
Es ist aufgrund von weniger duplizierem Code (redundantem Code) aber auch für das Verständnis häufig sinnvoll, Event-Handler, die ähnliche Ereignisse behandeln, in einer Methode unterzubringen.

Den Namen "Numbers" für einen Event-Handler halte ich aber für nicht sinnvoll. Eher etwas wie "NumberClick".
 
  • Gefällt mir
Reaktionen: Michael-D
tollertyp schrieb:
Es ist aufgrund von weniger duplizierem Code (redundantem Code) aber auch für das Verständnis häufig sinnvoll, Event-Handler, die ähnliche Ereignisse behandeln, in einer Methode unterzubringen.
... in einer Methode unterzubringen. Genau das wars !!! Jetzt hab ich es verstanden!

tollertyp schrieb:
Den Namen "Numbers" für einen Event-Handler halte ich aber für nicht sinnvoll. Eher etwas wie "NumberClick".
Genau so sehe ich es auch!

cx01 schrieb:
Vorteil ist weniger duplizierter Code. Ansonsten hast du halt 9 Event-Handler, die alle mehr oder weniger dasselbe machen.
Aha. Jetzt gibt das ganze auch einen Sinn ;)

Danke an alle! Ihr seit echt Spitze :daumen:
 
Zuletzt bearbeitet von einem Moderator:
  • Gefällt mir
Reaktionen: tollertyp
Zurück
Oben