自动生成textbox控件!!!
我想实现这样的功能:当我按下button后在某个位置上就会自动产生一个textbox.
但程序报错说类型“TextBox”的控件“_ctl0”必须放在具有 runat=server 的窗体标记内。
下面是原来的代码:
private void Button1_Click(object sender, System.EventArgs e)
{
TextBox txt;
txt=new TextBox();
this.Controls.Add(txt);
}
问题点数:20、回复次数:4Top
1 楼icyer()回复于 2002-03-27 10:17:14 得分 10
this.Controls.Add(txt);
改为:
this.Controls[1].Controls.Add(txt);
this中有3个Control,其中第二个(好像是)就是那个最大的RunAtServer的Form。
还有一个方法:
在页面中加入一个Panel控件,然后在Panel控件中加入TextBox:
Panel1.Controls.Add(txt);
这种方法的好处就是会添加到Panel控件里面,而第一种方法会添加到所有控件的最后。
Top
2 楼musicz()回复于 2002-03-27 11:23:05 得分 0
谢谢信誉!
但我还想按一下按钮就出来一个文本框,按一下就出来一个。上述代码被多次执行后只出现一个文本框?Top
3 楼icyer()回复于 2002-03-27 11:50:16 得分 0
在代码中添加的控件,在页面刷新的时候就会消逝。
建议你用ViewState来存储文本框的个数。
把以下代码放到Button的Click事件中:
if (ViewState["TextBoxNumber"] == null
ViewState["TextBoxNumber"] = 1;
else
ViewState["TextBoxNumber"] = (int)ViewState["TextBoxNumber"] + 1;
int i;
for (i=0; i<(int)ViewState["TextBoxNumber"]; i++)
{
TextBox txt = new TextBox();
Panel1.Controls.Add(txt);
}Top
4 楼icyer()回复于 2002-03-27 11:51:31 得分 10
Sorry,第一句应该是:
if (ViewState["TextBoxNumber"] == null)
忘了右括号:)
Top
相关问题
- 怎样用验证控件RangeValidator1来验证datagrid自动生成的textbox控件?
- 动态生成textbox控件的问题
- 如何自動生成TextBox控件?
- 自动生成控件排列问题
- VB7不支持动态生成控件!(dim NewText as new textbox)
- 如何动态生成控件呢?比如:textbox,label.....
- 初试C#,如何在form中动态生成textbox、lable控件
- 我想在页面生成时,生成textbox控件,但控件名称由string 变量来做,怎么办?
- 如何得到repeater控件中自动生成的控件的ID?急!!!!!!
- 用activexform生成的控件,怎么屏蔽掉自动生成的属性啊?




