我进入Form_Load :
for (int i = 1; i < 10; i++)
{
this.Controls["txtPrix"+i].Enter += new EventHandler(DlgFacture_Enter);
}
我得到了这个活动:
void DlgFacture_Enter(object sender, EventArgs e)
{
this.setTextBoxPrixEnter((TextBox)sender);
}
在最后一个事件中,我希望能够将TextBox
根变量名称(因此txtPrix1
打印到txtPrix10
)作为字符串,具体取决于哪个调用事件。
怎么办呢?
答案 0 :(得分:2)
你的意思是姓名属性?
this.setTextBoxPrixEnter(((TextBox)sender).Name);
答案 1 :(得分:0)
不容易。您尝试执行的操作是在运行时打印对象的引用名称。可以有许多对给定对象的引用,因此不可能在摘要中打印一个对象。
您需要做的是使用新方法包装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);
}