3

次のような単純なforループがあります。

for (int i = 0; i > 20; i++)
{

}

現在、20個のラベルがあります(label1、label2、label3など)。

私は次のようなことをしたいと思います:

for (int i = 0; i > 20; i++)
{
    label[i].Text = String.Empty;
}

これを達成するための最も簡単な方法は何ですか?

4

5 に答える 5

14

ラベルが1つのコンテナに配置されている場合、たとえばForm、次のようにすることができます。

foreach(Label l in this.Controls.OfType<Label>())
{
    l.Text = string.Empty;
}

他のコンテナについても同じです。たとえば、Panelまたは、コンテナの名前(など)GroupBoxに置き換えてください。thispanel1.Controls

于 2012-08-27T13:11:13.970 に答える
2

ラベルの配列またはリストを作成し、そのリストをループして各ラベルのプロパティを設定します

List<Label> labels = new List<Label>();
labels.Add(label1);

foreach(Label l in labels)
{
    l.Text = String.Empty;
}
于 2012-08-27T13:10:53.540 に答える
2

私はあなたのソリューションを設計上の欠陥と呼びますが、私は次のようなものを選びます:

var itemArray = this.Controls.OfType<Label>();

foreach(var item in itemArray)
{
    item.Text = string.Empty;
}
于 2012-08-27T13:11:09.217 に答える
1

それが最も簡単かどうかはわかりませんが、最短です。

this.Controls.OfType<Label>().ToList().ForEach(lbl => { lbl.Text = String.Empty; });
于 2012-08-27T13:22:52.360 に答える
0

たぶんあなたはFindControlを次のようなもので使うことができます

for(int i = 0; i < 5; i++)
{
   (FindControl("txt" + i.ToString())).Text = String.Emty;
}
于 2012-08-27T13:14:30.497 に答える