方法名称应为C# [英] Method name expected c#
问题描述
我有一个事件处理程序,我想向事件传递一些参数
I have an event handler, i would like to pass some parameters to the event
像这样,该行触发错误:预期方法名称
like this, that line trigger an error: method name expected
p.Click += new System.EventHandler(P_Click(sender, new MyEventArgs { design = reader1["desig_prd"].ToString(), prix = (float)reader1["prix_prd"] }));
我的P_Click事件
my P_Click event
public void P_Click(Object sender, EventArgs e)
{
var args = (MyEventArgs)e;
string deignation = args.design;
MessageBox.Show(deignation);
}
我有这样的类MyEventArgs
and i have class MyEventArgs like this
class MyEventArgs : EventArgs
{
public string design { get; set; }
public float prix { get; set; }
}
有帮助吗? 预先感谢
推荐答案
订阅事件处理程序时,不能将参数传递给方法.您应该仅指定方法名称:
You can't pass arguments to your method when you subscribing an event handler.You should just specify the method name:
p.Click += new EventHandler(P_Click);
或简称:
p.Click += P_Click;
如果要手动触发并传递一些参数,则应使用该参数调用方法:
If you want to trigger this manually and pass some arguments then you should call your method with that arguments:
P_Click(this, new MyEventArgs { design = reader1["desig_prd"].ToString(),
prix = (float)reader1["prix_prd"]
});
But this is usually a bad practice, (triggering event handler methods manually).Instead use PerformClick
method after subscribe your event handler and of course create another method for your arguments, and call that method from P_Click
:
p.PerformClick();
这篇关于方法名称应为C#的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!