一个低级的问题,高手可别笑话我这新手。在窗体上定义了几个TextBox和label,想用数组的方式先连续从TextBox的TEXT属性中获取数值,然后经过排序,连续赋值给label的TEXT属性显示。我写的代码是这样的:int[] a = new int[4];
for (int i = 0; i < 4; i++)
  a[i] = textBox(i + 1).Text;
for (int i = 0; i < 4; i++)
  label(i+1).Text = a[i];
编译无法通过,请各位高手帮忙修改一下。

解决方案 »

  1.   


    int[] a = new int[4];
    for (int i = 0; i < 4; i++)
    a[i] = textBox(i + 1).Text; ///这样也行? 不说用一个字符串付给一个整型,根本就没有 textBox(i + 1).Text 这种用法
    for (int i = 0; i < 4; i++)
    label(i+1).Text = a[i].tostring();// 这里要改一下
      

  2.   

    一个理由就足够了明明知道用[]定义数组
    int[] a = new int[4];偏偏用小括号来使用
    a[i] = textBox(i + 1).Text;莫非是来WR大家智商滴???
      

  3.   

    TextBox [] Ctextbox = new TextBox [4];
    Label [] Clabel = new Label [4];
    .........
    Clabel[0] = new Label();
    Clabel[0].text="123";
    //设定Clabel[0]位置
    ........Ctextbox[0] = new TextBox();
    Ctextbox[0].Text = Clabel[0].Text;
    //设定Ctextbox[0]位置
      

  4.   

    不能能过"textBox(i + 1)"访问控件.
    改后如下:
    int[] a = new int[4];
    for (int i = 0; i < 4; i++)
    {
        switch (i)
        {
          case 0:
            a[0] = textBox1.Text;    
            break;
          case 0:
            a[1] = textBox2.Text;    
            break;
          case 0:
            a[2] = textBox3.Text;    
            break;
          default:
            a[3] = textBox4.Text;    
            break;
        }
    }for (int i = 0; i < 4; i++)
    {
      switch (i)
      {
         case 0:
            label1.Text = a[0];  
            break;
         case 1:
            label1.Text = a[1];  
            break;
         case 2:
            label1.Text = a[2];  
            break;
         case 3:
            label1.Text = a[3];  
            break;
      }
    }
      

  5.   

    看LZ是不是学了VB,然后学的C#,所以搞出这样的代码出来^_^~
      

  6.   

    liliweihua2002:怎么就给你看出来了^_^~
    我是先学了点VB的皮毛,然后刚学C#
      

  7.   

    呵呵,想法没错,可以实现的。
    WebForm中有个FindControl方法,比较容易实现。
    WinForm中没有FindControl方法,可以用递归查找控件,实现类似FindControl的功能。
    然后赋值就OK了。
      

  8.   

    呵呵,我写的一个在WinForm中查找控件的方法,供参考:
    /// <summary>
            /// 根据控件名找出容器中的控件,考虑有些控件放在窗体的容器中,采用了递归查找。
            /// </summary>
            /// <param name="container">控件容器</param>
            /// <param name="controlName">控件名称</param>
            /// <returns></returns>
            private static Control FindControl(Control container, string controlName)
            {
                Control findControl = null;
                foreach(Control control in container.Controls)
                {
                    if (control.Controls.Count == 0)
                    {
                        if (control.Name == controlName)
                        {
                            findControl = control;
                            break;
                        }
                    }
                    else
                    {
                        findControl = FindControl(control, controlName);
                    }
                }
                return findControl;
            }
      

  9.   

    使用上面的方法,这样修改可以实现:int[] a = new int[4]{0,0,0,0};
    for (int i = 0; i < 4; i++)
    {
        TextBox tb = (TextBox)FindControl(this, "TextBox" + (i + 1));
        a[i] = int.Parse(tb.Text);
    }for (int i = 0; i < 4; i++)
    {
      TextBox tb = (TextBox)FindControl(this, "TextBox" + (i + 1));
      tb.Text = a[i].ToString();
    }