我想更改标签控件文本,如果标签名称为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 ();
}
}
}
答案 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);
}
}