需要在C#中在运行时更改控件(如标签)

时间:2016-03-07 08:34:56

标签: c#

These are 10 labels on form1 by named label1,label2,....,label10

我想更改标签控件文本,如果标签名称为label1,则1为奇数,label1的文本应更改为1,如果标签名称为label2,则标签文本应更改为2,依此类推。

以下代码无效。

private void Form1_Load(object sender, EventArgs e)
    {
       for(int ai =1; ai<=13; ai++)
        {
            if(ai % 2 == 0)
            {
                Controls["label" + ai.ToString()].Text = ai.ToString ();
            }

            else
            {
               Controls["label" + ai.ToString()].Text = ai.ToString ();
            }
        }
    }

2 个答案:

答案 0 :(得分:1)

您可以使用this.Controls.Find()

参考Control.ControlCollection.Find Method

你可以尝试

Control ctrl = this.Controls.Find("label" + ai.ToString(), false)[0];
ctrl.Text = ai.ToString();

this.Controls.Find("label" + ai.ToString(), false)[0].Text = ai.ToString();

答案 1 :(得分:0)

如果您将标签放在面板中,您可以这样做:

 foreach (var control in myPanel.Controls)
            {
                if (control is Label)
                {
                    Label myLabel=control as Label;
                    myLabel.Text = myLabel.Name.Substring("label".Length);
                }
            }