我有一個簡單的for循環如下:for循環使用一個對象名稱
for (int i = 0; i > 20; i++)
{
}
現在我有20個標籤(LABEL1,LABEL2,LABEL3等..)
我想做類似的事:
for (int i = 0; i > 20; i++)
{
label[i].Text = String.Empty;
}
什麼是最簡單的方法來實現這一點?
我有一個簡單的for循環如下:for循環使用一個對象名稱
for (int i = 0; i > 20; i++)
{
}
現在我有20個標籤(LABEL1,LABEL2,LABEL3等..)
我想做類似的事:
for (int i = 0; i > 20; i++)
{
label[i].Text = String.Empty;
}
什麼是最簡單的方法來實現這一點?
如果您的標籤被放置在一個容器,說Form
,你可以做到以下幾點:
foreach(Label l in this.Controls.OfType<Label>())
{
l.Text = string.Empty;
}
同樣爲任何其他容器,說,Panel
或GroupBox
,正好與容器的名稱(panel1.Controls
等)
通過列表創建標籤和循環數組或列表來設置每個標籤
List<Label> labels = new List<Label>();
labels.Add(label1);
foreach(Label l in labels)
{
l.Text = String.Empty;
}
我會打電話給你的解決方案設計的缺陷的性質,但我會去這樣的事情:
var itemArray = this.Controls.OfType<Label>();
foreach(var item in itemArray)
{
item.Text = string.Empty;
}
也許你可以使用的FindControl喜歡的東西
for(int i = 0; i < 5; i++)
{
(FindControl("txt" + i.ToString())).Text = String.Emty;
}
不要更換this
不知道它是否是最簡單的,儘管它是最短的..
this.Controls.OfType<Label>().ToList().ForEach(lbl => { lbl.Text = String.Empty; });
我給你的答案只使用'ForEach' upvote ...仍然習慣了它我自己 – horgh
謝謝,也是我太:) –
把標籤放在一個數組中,然後使用你發佈的代碼? – Moritz
_best_將使用描述性名稱而不是'Label123'。 –
label1與標籤[1]不同。 – Paparazzi