在一个WinForm 中有 10 Lable有一个 string[] str = new string[10];原来很笨的方法    Lable0.Text = str[0];
    Lable1.Text = str[1];
    Lable2.Text = str[2];
    Lable3.Text = str[3];
    Lable4.Text = str[4];
    .....请问有好的方法吗:
    for(int i=0; i<10; i++)
   {
      ???.Text = str[i];
   }谢谢!

解决方案 »

  1.   

    建立一个ArraryListArrayList labels=new ArrayList();
    labels.add (你的控件)for(int i=0;i++;i<labels.Count)
    {
      ((Label)labels[i]).Text=str[i];
    }
      

  2.   

    private void button1_Click(object sender, EventArgs e)
    {
        for (int i = 1; i <= 10; i++)
        {
            Control[] vControls = Controls.Find(string.Format("label{0}", i), true);
            if (vControls.Length > 0) 
                vControls[0].Text = string.Format("Zswang 路过{0}", i); //str[i];
        }
    }
      

  3.   

    Controls.Find 没有这个方法!
    可能我用的是CF 2.0 for WIN CE 5 的原因吧?
      

  4.   

    直接用
    Control vControl=Controls[string.Format("label{0}", i)];
    if(vControl!=null)
    {
    vControl.Text=str[i];
    }