2016-10-27 141 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中的問題! –

相關問題