c#快速清除所有文本框中内容

本文介绍如何在Windows Form应用中清除所有文本框的内容,包括直接位于Form中的文本框及嵌套在其他容器控件内的文本框。提供了适用于不同场景的代码示例。

如何清除Form中所有的文本框内容?

分两种情况:

(1)当所有的文本框都是顶级控件,即它们都直接位于this.Controls(或groupBox.Controls)中,此时遍历一遍清除即可。

(2)当文本框不全处于顶级,即部分包含在某些容器控件内,如groupBox中,由于控件在窗体中是严格分级摆放的。此时的文本框有的位于this.Controls中(即Form控件集中),有的则位于groupBox.Controls中。

    对于(1),直接这样写就可:

         foreach (Control ctrl in Controls)//或为groupBox1.Controls/panel1.Controls

        {                

      if (ctrl is TextBox)

                 ctrl.Text = "";

       }

    写出这样几行简单的代码是为了强调一个地方,当某些文本框是用户自己定义的一个继承TextBox的控件时,像上面那样写,都可识别,但若写成:if (ctrl.GetType() == typeof(TextBox)),这种判断方式相对严格,自定义文本框不会被识别。

    为了解决(2)中提出的问题,可写一个更为灵活通用的方法来检测出这些文本框,并将之清空。方法如下:

          private void ClearText(Control ctrlTop)        

         {            

               if (ctrlTop.GetType() == typeof(TextBox))

              ctrlTop.Text = "";    

               else       

      {              

              foreach (Control ctrl in ctrlTop.Controls)               

             {                  

                    ClearText(ctrl); //循环调用   

              }          

         }    

     }

     在需要的地方,直接调用ClearText(this)就大功告成了。

转载于:https://www.cnblogs.com/peter-Blog/archive/2013/05/21/WindowsForm.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值