C#在click事件中怎么传递一个自定义的参数,举个例子

for(inti=1;i<18;i++){pb[i].Click+=newEventHandler(Pb_Click);}}publicoverridevoidPb_Cl... for (int i = 1; i < 18; i++)
{
pb[i].Click += new EventHandler(Pb_Click);
}
}
public override void Pb_Click(object sender, EventArgs e,int i){}
比如我要把i的值传过去
展开
 我来答
no10pc
2014-04-24 · 超过37用户采纳过TA的回答
知道小有建树答主
回答量:146
采纳率:0%
帮助的人:78.6万
展开全部
pb[i].TabIndex = i.ToString();

public override void Pb_Click(object sender,EventArgs e)
{
var btn = (Button)sender;
var val = btn.TabIndex;

}
这是WINFORM

借用控件的属性传值。
网星星
2017-01-22 · TA获得超过504个赞
知道小有建树答主
回答量:190
采纳率:100%
帮助的人:131万
展开全部
我做一个小程序时,也遇到楼主的问题了,最后我是这样解决的,
myText[i, k] = new TextBox();
myText[i, k].Location = new Point(k * 35+40 , i * 30+30 );
myText[i, k].Size = new Size(35, 30);
myText[i, k].Name = Convert.ToString(i)+" "+ Convert.ToString(k);//把需要传送的变量变成对象名,中间用字符隔开,我用的是空格。
this.myText[i, k].TextChanged += new System.EventHandler(this.myText_TextChanged);
然后在事件代码里面提取:
private void myText_TextChanged(object sender, EventArgs e)
{
int i, k;
TextBox tex = (TextBox)sender;
string[] arr1 = tex.Name.Split(' ');//这里是用空格分组的,和上面要对应起来
i = Convert.ToInt16(arr1[0]);
k = Convert.ToInt16(arr1[1]);

这样做可以满足楼主的要求,如果传送其他参数就不行了, 我没学过计算机,这样的解决方法可能很另类,让大家见笑了。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
high423406
2020-04-01
知道答主
回答量:9
采纳率:0%
帮助的人:7551
展开全部
menuItemFolder.Click += (sender, e) => YourMethod(owner, dataType);

public void YourMethod(owner, dataType)


已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式