Frage von Crysali, 16

C# - Von generiertem Windows Form Element zu Event und Aktionen?

Hallo, ich bin noch blutiger Anfänger, wenn es um C# geht, deshalb probiere ich momentan einiges aus und bin auf Events und Interaktionen mit einem Element gestoßen, in einem Windows Form Projekt ( Visual Studio).

public Form1()
    {
        InitializeComponent();
        treeView1.NodeMouseClick += new TreeNodeMouseClickEventHandler(treeView1_NodeMouseClick);
    }

Hier erstelle ich beispielweise ein Event mit TreeView Klicks.

Wie auch immer, ich habe nun bemerkt, dass neue Elemente, beispielsweise label1 oder checkBox1 so etwas generieren, in meiner Form1 Klasse:

private void label2_Click(object sender, EventArgs e)
    {

    }

Wie kann ich das jetzt in eine funktionstüchtige Methode umwandeln, die auf ein Event reagiert ? Ich habe ein bisschen rumprobiert, aber nicht wirklich was gefunden. Was für ein Event muss ich in Form1() für ein Click Event hinzufügen und wie kann ich diese Methode so umschreiben, dass sie auf das Event reagiert ?

Antwort
von CrystalixXx, 6

Wenn du ein Doppelklick auf ein Steuerelement ausführst, dann wird ein Eventhandler für das Standard-Event erstellt. Für einen Button ist es beispielsweise das Click-Ereignis.

Visual Studio erstellt eine Methode, die der Signatur des Eventhandlers entspricht. Der erste Parameter ist dabei immer ein Object und der zweite Parameter ist immer ein EventArgs-Objekt (oder eine Object, dessen Klasse von EventArgs erbt). Der Eventhandler selbst, der das Ereignis mit der Methode verknüpft wird im Hintergrund von Visual Studio erzeugt. Den findest du, wenn du im Projektmappen-Explorer vor deinem Formular auf den kleinen Pfeil klickst und "Form1.Designer.cs" (oder wie auch immer dein Formular heißt) öffnest. Dort findest du dann sowas wie:

this.button1.Click += new System.EventHandler(this.button1_Click);

Damit wird dann bei einem Klick auf den Button die Methode:

private void button1_Click(object sender, EventArgs e)
{

}

aufgerufen.

Jedes Steuerelement hat übrigens eine Vielzahl von Ereignissen. Im Eigenschaften-Fenster siehst du diese, wenn du dort auf den Blitz klickst. Dort siehst du übrigens für die einzelnen Ereignisse ob und welche Methode mit dem Ereignis verknüpft ist.

Antwort
von glasair, 11

Eigentlich regelt sich das mit den Events von selber. Wenn du ein Objekt hast, kannst du Events hinzufügen (Klick, Doppelklick, etc.). Dies erzeugt in der zugehörigen Codedatei einen Eintrag wie in deinem 2. Zitat. Innerhalb der Klammern kommen dann die Befehle, was das Programm machen soll, wenn das Event aufgerufen wird.

Ich empfehle dir mal dieses Tutorial: https://www.youtube.com/playlist?list=PLvvL1HRuCBItyw45XnCqEXzuegKQd3MfL

Kommentar von CrystalixXx ,

Das Inhaltsverzeichnis ist unlogisch.

Von MessageBox über GUI-Elemente, Dialoge und Datenaustausch zwischen Formularen hin zum Klassendesign. Ist mir schleierhaft, wie man die ganze Zeit mit Klassen arbeiten kann ohne zu erklären, was das eigentlich ist.

Aber das ist eben das durchschnittliche Niveau von "Lernvideos" zur Programmierung.

Keine passende Antwort gefunden?

Fragen Sie die Community