C#动态添加控件之后怎么进行取值 10

在一个窗体上利用for循环动态添加了控件,想知道怎么在一个确定按钮中取值for(i=0;i<Form_main.combobox_int;i++){TextBoxtb1=... 在一个窗体上利用for循环动态添加了控件,想知道怎么在一个确定按钮中取值
for ( i = 0; i < Form_main.combobox_int;i++ )
{
TextBox tb1 = new TextBox();
this.Controls.Add(tb1);
tb1.Size = new System.Drawing.Size(120, 120);
tb1.Location = new Point(100, 10 + 30 * i);
tb1.Name = "t1";

TextBox tb2 = new TextBox();
this.Controls.Add(tb2);
tb2.Size = new System.Drawing.Size(120, 120);
tb2.Location = new Point(270, 10 + 30 * i);
tb1.Name = "t2";

TextBox tb3 = new TextBox();
this.Controls.Add(tb3);
tb3.Size = new System.Drawing.Size(120, 120);
tb3.Location = new Point(440, 10 + 30 * i);
tb1.Name = "t3";

TextBox tb4 = new TextBox();
this.Controls.Add(tb4);
tb4.Size = new System.Drawing.Size(120, 120);
tb4.Location = new Point(610, 10 + 30 * i);
tb1.Name = "t4";
}
展开
 我来答
xiangjuan314
2016-01-18 · TA获得超过3.3万个赞
知道大有可为答主
回答量:2.9万
采纳率:0%
帮助的人:2751万
展开全部
有时候需要在程序运行到一定时候或者某个事件之后需要动态生成控件 在C#下一般方式是:
    private Button Db=new Button() ;
     Db.Name="Dy_Button"           //设定名称
     Db.Location=new Point(100,200);//设定位置
     。。。。//其他属性设置
   //这里添加消息处理
     。。
     this.Controls.Add (Db);//添加到控件组中
  这样就完成了动态生成但是需要给控件添加消息处理事件
  那么现在就需要在生成控件添加到控件组前增加如下语句:
DPB.MouseClick += new EventHandler(this.pictureBox_MouseClick);
  现在编写这个消息处理的函数pictureBox_Click()
        private void pictureBox_MouseClick(object sender,EventArgs e)
        {
            MessageBox.Show("click");
        }
  这样完成了事件处理的添加
  首先,创建一个全局变量"i "用来区分各个新的按钮:
private int i=0;
  然后在已有的按钮中添加方法如下:
   private void button1_Click(object sender, System.EventArgs e)
   {
    i++;
    Button b = new Button();//创建一个新的按钮
    b.Name="b"+i;//这是用来区别各个按钮的办法
    System.Drawing.Point p = new Point(12,13+i*30);//创建一个坐标,用来给新的按钮定位
    b.Location = p;//把按钮的位置与刚创建的坐标绑定在一起
  
    panel1.Controls.Add(b);//向panel中添加此按钮
    b.Click += new System.EventHandler(btn_click);//将按钮的方法绑定到按钮的单击事件中b.Click是按钮的单击事件
   }
完成以上步骤就已经可以进行动态按钮的创建 下面来讲如何对新建的按钮添加对应的事件方法btn_click(): private void btn_click(object sender, System.EventArgs e) { Button b1 = (Button)sender;//将触发此事
  完成以上步骤就已经可以进行动态按钮的创建

  下面来讲如何对新建的按钮添加对应的事件方法btn_click():
   private void btn_click(object sender, System.EventArgs e)
   {
    Button b1 = (Button)sender;//将触发此事件的对象转换为该Button对象
  
     MessageBox.Show(""+b1.Name);
   }
  至此就已经完成了动态创建按钮和事件
  ASP.net为控件动态添加事件
  实现的功能是在网页上的Panel中动态添加一个Button,并为这个Button写一个单击事件。
  动态添加控件的事件,语句:
Control.Command += new CommandEventHandler(this.EventFun);
  具体的代码请看下面:
  需要特别注意的是:
  添加控件和给控件加事件时绝对不能放到 if(!IsPostback){}里面,那样的话,点击一次后控件会消失,而且事件也不
  会执行。
protected void Page_Load(object sender, EventArgs e)
    {
       //将输入字符串分析为System.Web.UI.Control对象,b为传进去的值
        Control c = ParseControl("<asp:Button Text = '按我' ID = 'myButton' commandargument = 'b' runat = 'server' />");
        //将控件添加大Panel中
        this.Panel1.Controls.Add(c);
        //查找页面名为myButton的控件
        Button Button = (Button)Page.FindControl("myButton");
        //添加事件On_Button
        Button.Command += new CommandEventHandler(this.On_Button);
       
    }
    //CommandEventArgs为command事件提供数据
    protected void On_Button(Object sender,CommandEventArgs e)
    {
        Response.Write("<script language = 'JavaScript' type = 'text/Javascript'>alert('" + e.CommandArgument.ToString() + "');</script>");
    }
动态添加控件并添加事件 private void Page_Load(object sender, System.EventArgs e) { Button Button1 = new Button(); Button1.CommandArgument = b1; Button1.Text = Btn1; Button1.Command += new CommandEvent
  动态添加控件并添加事件

private void Page_Load(object sender, System.EventArgs e)
{
   Button Button1 = new Button();
   Button1.CommandArgument = "b1";
   Button1.Text = "Btn1";
   Button1.Command += new CommandEventHandler(this.OnButton);
   PlaceHolder1.Controls.Add(Button1);
   Button Button2 = new Button();
   Button2.CommandArgument = "b2";
   Button2.Text = "Btn2";
   Button2.Command += new CommandEventHandler(this.OnButton);
   PlaceHolder1.Controls.Add(Button2);

   Control c3 = ParseControl("<ASP:Button id='Button3' text='Btn3' commandname='Btn' commandargument='b3' runat='server' />"); //将字符串转换成Web控件
   Control c4 = ParseControl("<asp:Button id='Button4' text='Btn4' commandname='Btn' commandargument='b4' runat='server' />");
   PlaceHolder1.Controls.Add(c3);
   PlaceHolder1.Controls.Add(c4);
   Button myBut = (Button)Page.FindControl("Button3");
   myBut.Command += new CommandEventHandler(this.OnButton);
   Button myBut2 = (Button)Page.FindControl("Button4");
   myBut2.Command += new CommandEventHandler(this.OnButton);
}
public void OnButton(Object Sender, CommandEventArgs e)
{
   switch (e.CommandArgument.ToString().ToLower())
   {
    case "b1":
     Label1.Text = "Button 1";
     break;
    case "b2":
     Label1.Text = "Button 2";
     break;
    case "b3":
     Label1.Text = "Button 3";
     break;
    case "b4":
     Label1.Text = "Button 4";
     break;
   };
} 
spirit丶灵
2019-02-03 · 超过20用户采纳过TA的回答
知道答主
回答量:78
采纳率:0%
帮助的人:43.3万
展开全部
如果你窗体上textbox类型的控件总是只有你添加的,那就可以用
foreach(control col in controls)
{
if(col is textbox)//如果要求不取空值,或者根据控件name取值之类的,在这里添加限制
{
//这里就是if筛选出来的textbox的值
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhouxiang_1216
推荐于2017-11-26 · TA获得超过2590个赞
知道大有可为答主
回答量:1286
采纳率:33%
帮助的人:1352万
展开全部
取什么值?你动态添加的TextBox控件中的文本?
取第一个TextBox中的文本代码如下,其它的代码类似:
foreach(Control control in this.Controls)
if(control is TextBox && control.Name=="t1")
return ((TextBox)control).Text;
也可以用FindControl之类的方法,希望对你有帮助,还有疑问请追问或是Hi
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式