我目前在一个表单上有14个文本框(开发完成时最多可以有30个)存储在数组'textBox'中。每个文本框代表竞争对手在其网站上宣传特定产品的价格。每个文本框的名称都以“txt”为前缀,然后是经销商名称。
在我的代码中,有很多textBox [i] .Text,textBox [i] .BackColor等的操作。以及相应标签('lbl'+经销商名称)和变量('str'的操纵+经销商名称)。
我想要做的是拥有一个经销商名称的枚举,然后在表单加载中将数组分配给每个项目对应于枚举中的项目。
类似的东西:
enum Dealers { DealerName1, DealerName2, DealerName3, DealerName4 etc..};
string[] prices = new string[13];
TextBox[] textBox = new TextBox[13];
Label[] labels = new Label[13];
for (int i = 0, i < 14, i++)
{
textBox[i] = txt + //Name of dealer at enum position i
label[i] = lbl + //Name of dealer at enum position i
}
//do processing and assign prices variables
for (int i = 0, i < 14, i++)
{
textBox[i].Text = prices[i]
}
我的问题是在相关整数位置连接“txt”和枚举中的经销商名称的正确语法是什么,然后使用它来分配textBox [i]
答案 0 :(得分:1)
您应该使用方法FindControl("IDOfControl")
。 - 这是针对.net网络表单
for (int i = 0, i < 14, i++)
{
textBox[i] = (TextBox)FindControl("txt" + (Dealers)i)
label[i] = (Label)FindControl("lbl" + (Dealers)i)
}
修改强>
如果您正在编写winforms,则应使用this.Controls.Find("IDOfYourControl", true)[0]
代替FindControl("")
方法。