C# 如何找到参数';在运行时,原始变量名是否为字符串?
我进入了C# 如何找到参数';在运行时,原始变量名是否为字符串?,c#,.net,C#,.net,我进入了表格\u加载: for (int i = 1; i < 10; i++) { this.Controls["txtPrix"+i].Enter += new EventHandler(DlgFacture_Enter); } 在最后一个事件中,我希望能够将TextBox根变量名(因此txtPrix1到txtPrix10)打印为字符串,具体取决于调用事件的对象 怎么能做到呢?不容易。您试图做的是在运行时
表格\u加载:
for (int i = 1; i < 10; i++)
{
this.Controls["txtPrix"+i].Enter += new EventHandler(DlgFacture_Enter);
}
在最后一个事件中,我希望能够将TextBox
根变量名(因此txtPrix1
到txtPrix10
)打印为字符串,具体取决于调用事件的对象
怎么能做到呢?不容易。您试图做的是在运行时打印对象引用的名称。一个给定的对象可能有许多引用,因此不可能在摘要中打印一个引用 您需要做的是用一个新方法包装Enter处理程序,该方法捕获变量名并传递它 例如:
var name = "txtPrix"+i;
Controls[name].Enter += (sender,e) => DlgFacture_Enter(name, sender, e);
void DlgFacture_Enter(string name, object sender)
{
this.setTextBoxPrixEnter((TextBox)sender);
}
你是说这个名字吗
this.setTextBoxPrixEnter(((TextBox)sender).Name);
this.setTextBoxPrixEnter(((TextBox)sender).Name);