2016-10-27 91 views
1

我目前在一个数组'textBox'中存储了一个窗体上的14个文本框(当开发完成后,最多会有30个文本框)。每个文本框代表竞争对手在其网站上宣传特定产品的价格。每个文本框的名称都以'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

您应该使用方法FindControl("IDOfControl")。 - 这是对的.NET Web形成

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

+0

我是否需要引用某个类以在.net WinForms应用程序中使用FindControl方法? –

+0

@TomCarroll检查我的编辑。 – mybirthname

+0

谢谢你应该指定它是winforms中的问题! –

相关问题