用c#动态生成控件要生成控件的数量是在在一个文本文件中记录着要求:
根据文本中的数字 动态生成相应数量的控件,控件是按照依次向下排列的(竖着)  一个接着一个谁能给个例子  比如说以Button为例    

解决方案 »

  1.   

    string s=File.ReadAllText("");
    for(int i=0;i<Convert.ToInt16(s);i++)
    {
    Button btn=new Button();
    btn.Id="btn"+i;
    btn.Location =new Point(100,100);
    btn.Text = "";
    btn.Click += new EventHandler(btn_Click);
    this.Controls.Add(btn);
    }
    void btn_Click(object sender, EventArgs e)
     {
      Button button = (Button)sender;
    }
      

  2.   


    Int32 controlCount = ReadCountFromTextFile();for(Int32 i=0;i<controlCount;i++)
    {
      Button btn = new Button();
      Controls.Add(btn);
      Literal ltrBr = new Literal();
      ltrBr .Text="<bt/>";
      Controls.Add(ltrBr);
    }
      

  3.   

     int a = 0;
                int x = 0, y = 0;
                while (NodeIter.MoveNext())
                {
                    a++;
                    n[a] = new Button();
                    n[a].Font = new Font("宋体", 18);
                    n[a].BackColor = Color.Orange;
                    n[a].ForeColor = Color.Orange;
                   // n[a].FlatStyle = FlatStyle.Flat;
                    n[a].Width = (panel3.Width / 5)-10;
                    n[a].Left = x * n[a].Width+x*10;
                    n[a].Height = panel3.Height / 4-10;
                    n[a].Top = y * n[a].Height+y*10;
                    n[a].Name = "b" + a;
                    n[a].Text = NodeIter.Current.Value;
                    n[a].Cursor = Cursors.Hand;
                    panel3.Controls.Add(n[a]);
                   
                  
                    n[a].MouseClick += new MouseEventHandler(Buttons_OnClick);
                
                    x += 1;
                    if (x == 5)
                    {
                        x = 0;
                        y += 1;
                    }
      

  4.   


    动态生成5个Label控件,把Lable换成Button,数量自己控制即可for (int i=0; i <5; i++)  
      {   
      Label sy = new Label;  
      sy.Name="Name"+i.ToString();
      sy.Text = "Label"+i.ToString(); 
      sy.Location=new Point(0, i*20);//位置自己控制好,以免叠在一起看不到
      Controls.Add(sy);   
      }