提问人:Jiří Touška 提问时间:8/22/2023 最后编辑:Rand RandomJiří Touška 更新时间:8/22/2023 访问量:29
将号码传递到事件中
Pass number into event
问:
我想请你帮忙。 我动态创建了很多文本框,并且正在使用 LostFocus 事件 (C#)。
是否可以创建传递文本框数字 ID 的事件?
类似的东西
(object sender,EventArgs,int ID)
和
tbx.LostFocus+= EventHandler(MySubFunction(3)?? --3 is my ID of textbox
谢谢你的帮助,我迷失在其中
我不知道如何添加任何号码来呼叫EventHandler
答:
1赞
JonasH
8/22/2023
#1
如果使用 winforms,则可以使用该属性来区分不同的控件:Tag
var textbox = new TextBox();
textbox.Tag = 42;
textbox.LostFocus += TextboxLostFocus;
...
void TextboxLostFocus(object sender, EventArgs e){
if(sender is TextBox txtBox && txtBox.Tag is int textboxNum){
// use textboxNum
}
}
或者,您可以使用 lambda 使用内置号码注册您的活动:
var textbox = new TextBox();
textbox.LostFocus += (o, e) => TextboxLostFocus(42);
...
void TextboxLostFocus(int textboxNum){
// use textboxNum
}
评论
0赞
Jiří Touška
8/22/2023
非常感谢,这比我尝试创建的方法要简单得多。
评论
Tag
TextBoxes
textBox.Tag = "Hello World";
(sender as TextBox).Tag