我动态创建了一个Form,在里面我创建了一个按钮,但是当我尝试将我的函数添加到按钮时,它会出现这个错误:
预期的方法名称。
我使用以下代码:
{
...
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();
}
我该怎么做才能解决这个问题?
答案 0 :(得分:2)
问题是Funct不符合Click事件的签名:
尝试:
public void Funct(object sender,EventArgs e) { ... }
如果要动态传递字符串,可能需要创建自己的EventArgs类,在那里添加其他属性。
希望有所帮助。
答案 1 :(得分:1)
使用lambda,将click事件更改为
btn.Click += (s, e) => { Funct(label1.Text, label12.Text) };