2016-03-29 8 views
0

ich dynamisch ein Formular erstellt und innerhalb ich eine Taste erstellt, aber wenn ich versuche, meine Funktion auf die Schaltfläche hinzufügen gibt es diesen Fehler:Funktion hinzufügen, um dynamische Schaltfläche in C#

Method name expected.

Ich verwende die folgenden Code:

 { 
     ... 
     Form newForm = new Form(); 
     newform.Size = new Size(477, 222); 
     Button btn = new Button(); 
     btn.Size = new Size(121, 23); 
     btn.Location = new Point(231, 102); 
     btn.Text = "Text"; 
     btn.Click += new EventHandler(Funct(label1.Text, label12.Text)); 
     newForm.Controls.Add(btn); 
    } 

    public void Funct(string stringA, string stringB) 
    { 
     StreamWriter write = new StreamWriter(path); 
     write.WriteLine(stringA + "-" + stringB); 
     write.Close(); 
    } 

Was kann ich tun, um dieses Problem zu beheben?

Antwort

1

Verwenden Lambda, ändern Click-Ereignis

btn.Click += (s, e) => { Funct(label1.Text, label12.Text) }; 
2

Das Problem ist die Funkt nicht mit der Signatur für das Click-Ereignis erfüllen:

Versuchen:

public void Funkt (object sender , EventArgs e)

Wenn Sie dynamisch pa Bei den Strings müssen Sie möglicherweise Ihre eigene EventArgs-Klasse erstellen, um die zusätzlichen Eigenschaften hinzuzufügen.

Hoffe, dass hilft.