求解惑!!遍历问题..

bdsutx 2012-10-11 10:34:09
我要遍历窗体的textbox并判断值大小,如果大于100则背景色变红


foreach (Control col in this.Controls)
{
if (col is TextBox)
{
int i = Convert.ToInt32(col.Text);
if (i > 100)
{
col.BackColor = Color.Red;
}
}

}

代码第5行报错:"输入的字符串格式不对" 为什么?

...全文
91 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
bdsutx 2012-10-11
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]
C# code

foreach (TextBox item in Controls.OfType<TextBox>())
{

}



可以用这样的循环来搞,更简单。需要LingQ支持,3.5


[/Quote]

受教了...
bdsutx 2012-10-11
  • 打赏
  • 举报
回复
谢谢大家的热心帮助..."int.tryparse"是关键..我咋就不知道有这东西呢....还得多积累啊..
Hauk 2012-10-11
  • 打赏
  • 举报
回复

foreach (TextBox item in Controls.OfType<TextBox>())
{

}


可以用这样的循环来搞,更简单。需要LingQ支持,3.5
threenewbee 2012-10-11
  • 打赏
  • 举报
回复
Controls.OfType<TextBox>().Where(x => Regex.IsMatch(x.Text, @"\d+")).Where(x => int.Parse(x.Text) > 100).ToList().ForEach(x => x.BackColor = Color.Red);
tigercao101 2012-10-11
  • 打赏
  • 举报
回复
楼上正确。
Hauk 2012-10-11
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
我要遍历窗体的textbox并判断值大小,如果大于100则背景色变红

C# code

foreach (Control col in this.Controls)
{
if (col is TextBox)
{
int i = Convert.ToInt32(c……
[/Quote]


foreach (Control col in this.Controls)
{
if (col is TextBox)
{
int i=0;
int.TryParse(col.Text, out i);
if (i > 100)
{
col.BackColor = Color.Red;
}
}

}


报错的时候说明col.Text无法转换成int值。。。用TryParse就不怕了。。
xuggzu 2012-10-11
  • 打赏
  • 举报
回复
应该是字符串中含有不能转换的字符,可以考虑使用int.tryparse

109,896

社区成员

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

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

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