关于几个控件判断的问题

南山行者 2011-07-15 01:26:30
我需要判断4个TextBox,当点确认时,4个控件必须都不能为空,如果为空,则将为空的控件名字都提示出来,
如果不用逻辑控制,一个个的去判断,太繁琐了,哪位有好的办法帮我啊
...全文
109 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
南山行者 2011-07-15
  • 打赏
  • 举报
回复
各位多谢 学习了
confidenceyu 2011-07-15
  • 打赏
  • 举报
回复
验证控件吧,或者一个个判断,要不你一下提示那么多错误出来 ,不友好
我姓区不姓区 2011-07-15
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 stubborn_cow 的回复:]

实际情况是FORM里面有很多TextBox和Combox 而我只需要判断其中3个TextBox和1个Combox
这个如何控制...
[/Quote]
4楼和6楼都可以的,不过要用6楼的代码,你的程序必须是基于.net framework4.0
threenewbee 2011-07-15
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 stubborn_cow 的回复:]
引用 5 楼 ojlovecd 的回复:

引用 3 楼 stubborn_cow 的回复:

大侠,我刚说错一个问题,里面有一个combox...
这个该怎么办啊

那就用第二种办法,遍历它们的父控件的所有子控件,当然用这个方法的前提是它们必须都在同一个父控件里
我现在假设它们都在Form里
C# code

foreach(Control c in this.Contro……
[/Quote]
那你用6L的代码。
南山行者 2011-07-15
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 ojlovecd 的回复:]

引用 3 楼 stubborn_cow 的回复:

大侠,我刚说错一个问题,里面有一个combox...
这个该怎么办啊

那就用第二种办法,遍历它们的父控件的所有子控件,当然用这个方法的前提是它们必须都在同一个父控件里
我现在假设它们都在Form里
C# code

foreach(Control c in this.Controls)
{
if(c is TextBo……
[/Quote]

实际情况是FORM里面有很多TextBox和Combox 而我只需要判断其中3个TextBox和1个Combox
这个如何控制...
threenewbee 2011-07-15
  • 打赏
  • 举报
回复
dynamic[] tbs = new dynamic[] { textBox1, textBox2, textBox3, textBox4, comboBox1 };
if (rbs.Any(x => x.Text == ""))
{
tbs.Where(x => x.Text == "").Tolist().ForEach(x => MessageBox.Show(x.Name));
}
我姓区不姓区 2011-07-15
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 stubborn_cow 的回复:]

大侠,我刚说错一个问题,里面有一个combox...
这个该怎么办啊
[/Quote]
那就用第二种办法,遍历它们的父控件的所有子控件,当然用这个方法的前提是它们必须都在同一个父控件里
我现在假设它们都在Form里

foreach(Control c in this.Controls)
{
if(c is TextBox || c is ComboBox)
{
if(string.IsNullOrEmpty(c.Text))
MessageBox.Show(c.Name);
}
}
bloodish 2011-07-15
  • 打赏
  • 举报
回复

TextBox tb1, tb2, tb3, tb4;
ComboBox cb;
//initialize text box
//todo...
var tbArray = new Control[] { tb1, tb2, tb3, tb4, cb };
var msg = string.Join(",", (from ctrl in tbArray where string.IsNullOrEmpty(ctrl.Text) select ctrl.Name));
if (!string.IsNullOrEmpty(msg))
{
MessageBox.Show(msg);
}
南山行者 2011-07-15
  • 打赏
  • 举报
回复
大侠,我刚说错一个问题,里面有一个combox...
这个该怎么办啊
threenewbee 2011-07-15
  • 打赏
  • 举报
回复
TextBox[] tbs = new TextBox[] { textBox1, textBox2, textBox3, textBox4 };
if (rbs.Any(x => x.Text == ""))
{
tbs.Where(x => x.Text == "").Tolist().ForEach(x => MessageBox.Show(x.Name));
}
我姓区不姓区 2011-07-15
  • 打赏
  • 举报
回复
你可以先用一个数组把这四个TextBox放进去,然后遍历这个数组进行校验就行了:

TextBox[] textboxes = { textBox1, textBox2, textBox3, textBox4};
foreach(TextBox tb in textboxes)
{
if(string.IsNullOrEmpty(tb.Text))
{
MessageBox.Show(tb.Name);
}
}

当然,遍历这4个TextBox的父控件的所有子控件也是可以的

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧