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);