c#用for循环textbox判断是否为空

有十个textbox,id是连续的,如textbox1,textbox2。。。。用for循环判断这十个textbox,如果为空,获取当前控件id在winform中,另外希... 有十个textbox,id是连续的,如textbox1,textbox2。。。。用for循环判断这十个textbox,如果为空,获取当前控件id
在winform中,另外希望用for(i)循环,想判断为空时同时获取当前 i 值,方便用于后续操作
展开
 我来答
freeeeeewind
2014-03-09 · TA获得超过1万个赞
知道大有可为答主
回答量:3227
采纳率:94%
帮助的人:1348万
展开全部
//存放内容为空的TextBox控件
List<TextBox> list = new List<TextBox>;

foreach(Control c in this.Controls)
{
    //判断控件是不是TextBox
    if( c is TextBox)
    {
        //如果是,检查其内容是否为空
        if(string.IsNullOrEmpty(c.Text))
        {
            //将内容为空的TextBox存放到list中
            list.Add(c);
        }
        else
        {
            //内容不为空的处理
        }
    }
}

//至此,list中存放着内容为空的TextBox
if(list.Count>0)
{
    //对内容为空的控件进行处理
}

 这样写的好处是,不管你有多少个TextBox,都能处理

syht2000
高粉答主

推荐于2016-01-05 · 关注我不会让你失望
知道大有可为答主
回答量:3万
采纳率:79%
帮助的人:1.4亿
展开全部
private TextBox findEmpy()
{
for(int i=1;i<10;i++)
{
   object o=findcontrol("textbox"+i);
   if(o!=null && o is TextBox)
     {
     TextBox t=(TextBox)o;
      if(t.Text=="")
          {
           return t;
          }
     }
}
return null;
}
private object findcontrol(string name)
{
object o = this.GetType().GetField(name, System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.IgnoreCase).GetValue(this);   
return o;
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-03-09
展开全部
你可以把这十个textbox放到一个Panel操作中
然后
foreach(var textbox in Panel1.Controls.OfType<TextBox>())
{
if (string.IsNullOrEmpty(textbox.Text) return textbox.Id

}
上面的代码可能要根据具体情况稍微变下,都不知道你是WinForm还是WebForm
有需要的话,根据智能提示修改下吧。
追问
在winform中,另外希望用for(i)循环,想判断为空时同时获取当前 i 值,方便用于后续操作
追答
for (int i = 1; i ().Single(t => t.Name = "textbox" + i;

if (string.IsNullOrEmpty(textbox.Text)

{

/* 找到了为空的TextBox */

}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式