C# 调用动态新增控件

来源:百度知道 编辑:UC知道 时间:2024/05/06 20:48:14
public void add_control_textbox(int a,int b,int c,int d,int e,String f)//增加控件;a为记数器,记录新增了多少textbox;
{

a = a + 99;
TextBox textBox = new TextBox();
textBox.Name = "textBox" + a;
textBox.Location = new Point(b, c);
textBox.Size = new Size(d, e);
textBox.Text = f;
tabPage2.Controls.Add(textBox);
}
public int i=0
i++;
add_control_textbox(i,281,83+i*26-26,100,21,"");
如上,新增textBox控件,如何调用?
textBox+i.Text="你";(该怎么写?)
tbxTemp = (TextBox)(this.tabPage2.Controls.Find("textBox" + i.ToString(), false))[0];(提示索引超出了数组界tbxTemp = (TextBox)(this.Controls.Find("textBox" + i.ToString(), false))[0];(也不行)
tabPage2.Controls.Add(textBox); 这句已加到tabpage2中了实际运行结果也看的到.

---------------------
老提示数组超出界限.我汗~

你是不是在New这些textBox控件的时候,没有把它加入到tabPage2上啊?
在textBox 创建并设定完毕后, 使用this.tabPage2.Controls.Add(textBox控件名);

应该没有问题.

---------------------

TextBox tbxTemp;
tbxTemp = (TextBox)(this.Controls.Find("textBox" + i.ToString(), false))[0];

tbxTemp就是你要操作的名称为:"Text+数字i"的TextBox控件对象的句柄,想怎么用怎么用.

tbxTemp.Text = "你";

((TextBox)tabPage2.FindCotrol("textBox"+i)).Text="你";

大概这么个思路,写得可能不对!

控件名不能那么写

楼主的代码需要改
FindControl应该是按照ID进行FIND的
TextBox textBox = new TextBox();
//这里textBox.Name改为ID
textBox.Name = "textBox" + a;

textBox.Location = new Point(b, c);
textBox.Size = new Size(d, e);
textBox.Text = f;
tabPage2.Controls.Add(textBox);

同样下面的代码如下

foreach(Control c in Controls)
{
if (c.ID=="textBox1")
{
((TextBox)c).Text="找到了!";
break;
}