我现在有60个combobox,如何用一个循环给他们同时赋值名称是从combobox1到combobox60

解决方案 »

  1.   

    往界面上拖上60个combobox,自动命名
      

  2.   

            For Each con As Control In Me.Controls
                If con.Name.Substring(0, 8) = "ComboBox" Then
                    Dim cn As ComboBox = con
                    cn.Text = "what you want!"
                End If
            Next
      

  3.   

    var n = 0;
    foreach (ComboBox cur in Controls.OfType<ComboBox>())
    {
      cur.Name = "combobox" + n++;
    }
    不过这样命名后,只能用 Controls["combobox1"]、Controls["combobox40"] 这样访问
      

  4.   


    您好,我还想操作的是60个combobox 初始化的时候都填充一样的内容,但是在往数据库插入的时候,60个是分为10条数据插进去,所以我想通过循环实现插入操作
      

  5.   

      int  i;
                for(i=1;i<=60;i++)
                {
                    foreach (ComboBox cur in Controls.OfType<ComboBox>())
                    {
                    //ComboBox cur = new ComboBox();
                    cur.Name = "comboBox" + i;
                        cur.Items.Add("");
                        cur.Items.Add("D");
                        cur.Items.Add("L");
                        cur.Items.Add("V");
                        cur.Items.Add("OG");
                    }
                }
                我想实现的是60个都填充上面的内容,但是我现在这个代码,每个都填充了60次
      

  6.   

    private void Form1_Load(object sender, EventArgs e)
    {
        int yBase = 10;
        int xBase = 10;
        int xIncreasement = 60;
        for (int i = 0; i < 6; i++)
        {
            for (int j = 0; j < 10; j++)
            {
                ComboBox cbo = new ComboBox();
                cbo.Location = new System.Drawing.Point(xBase + (j * xIncreasement), yBase);
                cbo.Name = "comboBox" + (i + j);
                cbo.Size = new System.Drawing.Size(50, 20);
                cbo.Items.Add("");
                cbo.Items.Add("D");
                cbo.Items.Add("L");
                cbo.Items.Add("V");
                cbo.Items.Add("OG");
                this.Controls.Add(cbo);
            }
            yBase += 30;
        }
        this.SuspendLayout();
    }
      

  7.   

    初始化:
    for (int i = 1; i <= 60; i++)
    {
        object obj = this.GetType().GetField("ComboBox" + i.ToString(), System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.IgnoreCase).GetValue(this);
        ComboBox cb = (ComboBox)obj;
        cb.Text = i.ToString();
    }
    插入:
    for (int i = 0; i < 10; i++)
    {
        object obj;
        int j = i * 6;    obj = this.GetType().GetField("ComboBox" + (j + 1).ToString(), System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.IgnoreCase).GetValue(this);
        string c1 = ((ComboBox)obj).Text;
        obj = this.GetType().GetField("ComboBox" + (j + 2).ToString(), System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.IgnoreCase).GetValue(this);
        string c2 = ((ComboBox)obj).Text;
        obj = this.GetType().GetField("ComboBox" + (j + 3).ToString(), System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.IgnoreCase).GetValue(this);
        string c3 = ((ComboBox)obj).Text;
        obj = this.GetType().GetField("ComboBox" + (j + 4).ToString(), System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.IgnoreCase).GetValue(this);
        string c4 = ((ComboBox)obj).Text;
        obj = this.GetType().GetField("ComboBox" + (j + 5).ToString(), System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.IgnoreCase).GetValue(this);
        string c5 = ((ComboBox)obj).Text;
        obj = this.GetType().GetField("ComboBox" + (j + 6).ToString(), System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.IgnoreCase).GetValue(this);
        string c6 = ((ComboBox)obj).Text;    //将c1,c2,c3,c4,c5,c6插入到数据库
    }
      

  8.   


    cbo.Name = "comboBox" + (i + j);改为cbo.Name = "comboBox" + ((i * 10) + 1 + j);
      

  9.   

    一个循环private void Form1_Load(object sender, EventArgs e)
    {
        int yBase = 10;
        int xBase = 10;
        int xIncreasement = 60;
        for (int i = 0; i < 60; i++)
        {
            if (i != 0 && i % 10 == 0)
            {
                yBase += 30;
            }
            ComboBox cbo = new ComboBox();
            cbo.Location = new System.Drawing.Point(xBase + ((i % 10 - 1) * xIncreasement), yBase);
            cbo.Name = "comboBox" + (i + 1);
            cbo.Size = new System.Drawing.Size(50, 20);
            cbo.Items.Add("");
            cbo.Items.Add("D");
            cbo.Items.Add("L");
            cbo.Items.Add("V");
            cbo.Items.Add("OG");
            this.Controls.Add(cbo);
        }
        this.SuspendLayout();
    }
      

  10.   

    一样的,再遍历时绑定数据源
                var n = 1;
                var ds = new List<string>() { "", "D", "L", "V", "OG" };
                foreach (ComboBox cur in Controls.OfType<ComboBox>())
                {
                    cur.Name = "combobox" + n++; //命名
                    cur.DataSource = ds.ToList(); //绑定数据
                }
      

  11.   

    在form load事件里把所有的combobox加入到list中,之后用数组的下标操作想要操作的combobox就很方便啦。
      

  12.   

    遍历OBJECT,不就完了
      

  13.   

    您这个是C#么这是VB
      

  14.   

    如果不连续:
    ComboBox[] arr = { ComboBox1, ComboBox2, ... };
    foreach (ComboBox c in arr)
    {}