我有一個List對象,它會自動填充文本框的名稱。現在我想循環瀏覽所有這些文本框。 如何讓C#知道List中的字符串名實際上是帶有該字符串名的TextBox對象?如何使用在循環中創建並存儲在列表<string>中的變量名?
List<string> txtOppsNames = new List<string>();
for (int i = 1; i < numOpps; i++)
{
txtOppsNames.Add("txtOpp" + i);
}
foreach (var txtName in txtOppsNames)
{
if (txtName.Text != "")
{
// do stuff
}
}
當前的代碼讀取txtName作爲字符串。我希望它讀取爲一個文本框。
編輯 - 下面的代碼包含我的解決方案。
List<string> txtOppsNames = new List<string>();
for (int i = 1; i < numOpps; i++)
{
txtOppsNames.Add("txtOpp" + i);
}
foreach (var txtName in txtOppsNames)
{
TextBox textBox = this.Controls.Find(txtName, true).FirstOrDefault() as TextBox;
if (textBox.Text != "")
{
MessageBox.Show("Thanks Amir Popovich");
}
}
你不能那樣做,你在哪個環境工作? ASP.NET/Windows窗體等。 – Nunners 2014-11-05 07:33:46
'txtOppsNames'是一個'List'。你爲什麼認爲你的'txtName'可以是'TextBox'? –
2014-11-05 07:35:05
您可以考慮動態創建文本框(不是通過設計器),而是將它們添加到「列表」中。 –
2014-11-05 07:37:31