将字符串+枚举值转换为TextBox类型

时间:2016-10-27 11:14:07

标签: c# enums

我目前在一个表单上有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]

1 个答案:

答案 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("")方法。