C#: Keine Überladung für "button1_Click" stimmt mit dem Delegaten "EventHandler" überein?

1 Antwort

Dann hast Du wohl die die Parameter in der Funktionsdeklaration für deinen Handler Delegaten falsch definiert... Wahrscheinlich sowas:

private void Button1_Click(){ 
   //Mach was...
}

Wir sind hier nicht in JavaScript...😅

...geht natürlich so nicht... Deine Funktion sollte schon die Parameter definieren, welche immer automatisch an sie übergeben werden.

private void Button1_Click(object sender, EventArgs e){ 
   //Mach was...
}

ob du die Parameter in der Funktion verwendest ist völlig egal .

In der Praxis siehts dann so aus:

using System;
using System.Drawing;
using System.Windows.Forms;

public class Form1 : Form {
    private Button Button1;  //MachWasKnopf :p
    private Label Display1;

    public Form1() {
        this.Size = new Size(600,140);

        Display1 = new Label();
        Display1.Text = "Der MachWasKnopf wurde noch nicht gedrückt";
        Display1.Location = new Point(10, 20);
        Display1.AutoSize = true;
        this.Controls.Add(Display1);
        
        Button1 = new Button();
        Button1.Text = "Mach Was";
        Button1.Location = new Point(10, 40);
        Button1.Click += new System.EventHandler(Button1_Click);
        this.Controls.Add(Button1);
    }

    private void Button1_Click(object sender, EventArgs e){ 
        //Alles was  bei Click  bassiernen soll
        Button1.Enabled = false;
        Display1.Text = "Der MachWasKnopf wurde bereits gedrückt";
    }
    
    static void Main() {
            Application.EnableVisualStyles();
            Application.Run(new Form1());
    }
}