将号码传递到事件中

问题描述 投票:0回答:1

我想请你帮忙。 我动态创建了很多文本框,并且正在使用 LostFocus 事件 (C#)。

是否可以通过传递文本框的数字ID来创建事件?

类似的东西

(object sender,EventArgs,int ID)

tbx.LostFocus+= EventHandler(MySubFunction(3)?? --3 is my ID of textbox

谢谢您的帮助,我迷失了方向 我不知道如何添加任何号码到

EventHandler
通话

c# event-handling parameter-passing optional-parameters
1个回答
0
投票

如果您使用的是 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
}
© www.soinside.com 2019 - 2024. All rights reserved.