黑马程序员技术交流社区

标题: textbox控件 [打印本页]

作者: 赵刘滨    时间: 2012-8-5 20:03
标题: textbox控件
如何清空页面上的textbox控件的值?(请写详细一点)
作者: 赵令    时间: 2012-8-5 20:52
foreach   (Control   txt   in   this.Controls[1].Controls)
{
if   (txt   is   System.Web.UI.WebControls.TextBox)
{
((TextBox)txt).Text= " ";
}
}
作者: 彭书雄    时间: 2012-8-5 21:04
textBox.text="";
作者: 肖攀    时间: 2012-8-5 23:21
TextBox.Text="";就是把TextBox的Text复制为空不就可以了吗?
作者: 赵刘滨    时间: 2012-8-6 23:25
赵令 发表于 2012-8-5 20:52
foreach   (Control   txt   in   this.Controls[1].Controls)
{
if   (txt   is   System.Web.UI.WebCon ...

你这种方式我试了,但是System.Web.UI.WebControls.TextBox这句话弄不出来,显示错误的。
作者: 梁永斌    时间: 2012-8-7 13:46
标题: for循环来实现清空TestBox1的值
方法1:如果你的10个TestBox都在同一个容器里(暂定是panel1),同时假定TestBox1~10都是TextBox,这样写:
foreach (Control c in panel1.Controls)
                if (c is TextBox)
                    for (int i = 1; i <= 10; i++)
                        if (c.Name == "testBox" + i.ToString())
                            (c as TextBox).Clear();
就是先遍历容器里所有control,找出所有TextBox,如果他的Name为TestBox1~10就清除文本。
还可以再简洁一些,直接从Name下截取最后的数字
foreach (Control c in panel1.Controls)
        if (c is TextBox && int.Parse(TestBox1.Name.Substring(7)) >= 1 && int.Parse(TestBox1.Name.Substring(7)) <= 10)
                (c as TextBox).Clear();

方法2:假设这些TestBox分散在好多容器里(同样假设TestBox都是TextBox控件),建议这样:把它们都加入到一个列表中(就是List<TextBox>),这样你随时可以遍历列表清除所有列表内成员的文本。
List<TextBox> testBoxList=new List<TextBox>();
testBoxList.Add(TestBox1);
testBoxList.Add(TestBox3);
……
要清除时:
foreach (TextBox tb in testBoxList)
       tb.Clear();
这样看起码麻烦,实际上有个好处:你可以用List<Control>列表来维护多种控件,TextBox/Panel/Button等都可以丢进去,需要清除Text属性时遍历即可。








欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2