如何为C#按钮点击事件函数传入自定义字符串参数?
按钮点击事件传递字符串参数的解决方案
方法一:Lambda表达式包裹(最简便)
直接在绑定事件时用Lambda表达式包装目标方法,传入指定字符串参数:
// 替换"yourTargetName"为你要传入的字符串 De.Click += async (sender, e) => await De_Click(sender, e, "yourTargetName");
注意:异步方法推荐返回Task而非void,可将方法签名改为public async static Task De_Click(object sender, EventArgs e, String Name),更利于异步流程管控。
方法二:利用Button的Tag属性传递
将字符串赋值给按钮的Tag属性,在事件方法内读取该值:
- 修改事件方法,移除
Name参数:
public async static void De_Click(object sender, EventArgs e) { Button targetBtn = sender as Button; if (targetBtn != null) { string name = targetBtn.Tag.ToString(); // 执行原有业务逻辑 } }
- 绑定事件前设置
Tag并绑定:
De.Tag = "yourTargetName"; De.Click += new EventHandler(De_Click);
方法三:自定义委托(复杂场景适用)
如果需要传递多类参数,可定义自定义委托匹配方法签名:
- 定义自定义委托:
public delegate void CustomClickHandler(object sender, EventArgs e, string name);
- 绑定事件时通过Lambda关联:
De.Click += (sender, e) => De_Click(sender, e, "yourTargetName");
内容的提问来源于stack exchange,提问作者mohammaderfan
相关产品推荐
相关产品推荐

