-3

我的窗户上有这样的东西

   field1                field 2                        mandatory             showfield

   textbox1               textbox2                      checkbox1          checkbox 2

   textbox3              textbox4                       checkbox3          checkbox4

.... 总共 5 个这样的字段

我想要的是首先遍历文本框,如果它们被填充我想检查复选框是否被选中

我有以下数据

string[] textdata = { textBox1.Text, textBox2.Text, textBox3.Text, textBox4.Text, textBox5.Text, textBox6.Text, textBox7.Text, textBox8.Text, textBox9.Text, textBox10.Text, textBox11.Text };
bool[] chk = { checkBox1.Checked, checkBox2.Checked, checkBox3.Checked, checkBox4.Checked, checkBox5.Checked, checkBox6.Checked, checkBox7.Checked, checkBox8.Checked, checkBox9.Checked, checkBox10.Checked, checkBox11.Checked, checkBox12.Checked };

这是我试过的

4

4 回答 4

1

您可以获取列表中的所有文本框,然后在每个框中迭代以检查数据..

List<TextBox> textBoxes = formObject.Controls.OfType<TextBox>();

   foreach(TextBox txtBox in textBoxes)
   {
       if(txtBox.Text == "")
         //Do some work
   }

同样,您可以对其他控件执行操作

于 2012-11-30T13:04:07.913 回答
1
foreach (Textbox g in this.Controls.OfType<Textbox>())
{
if(g.text == "")
{
this.Controls[checkbox[gettextbox name and parse it to getnumber]].checked = true;    }  
}
于 2012-11-30T13:08:32.460 回答
0

由于没有真正的问题/问题,我猜测问题可能是什么。

我想要的是首先遍历文本框,如果它们被填充我想检查复选框是否被选中

我有以下数据

string[] textdata = { textBox1.Text, textBox2.Text, textBox3.Text, textBox4.Text, textBox5.Text, textBox6.Text, textBox7.Text, textBox8.Text, textBox9.Text, textBox10.Text, textBox11.Text };
bool[] chk = { checkBox1.Checked, checkBox2.Checked, checkBox3.Checked, checkBox4.Checked, checkBox5.Checked, checkBox6.Checked, checkBox7.Checked, checkBox8.Checked, checkBox9.Checked, checkBox10.Checked, checkBox11.Checked, checkBox12.Checked };

所以你可以Enumerable.All用来检查是否所有的文本框都被填满了:

bool allTextEntered = textdata.All(s => !string.IsNullOrWhiteSpace(s));

然后您可以显示MessageBox是否缺少某些内容,否则您可以检查是否所有内容CheckBoxes都已检查:

bool allCheckBoxChecked = chk.All(chk => chk);
于 2012-11-30T13:07:40.383 回答
0

应该起作用的简单方法是在文本框的Tag属性 IE 中设置文本框/复选框的关系:

this.textbox1.Tag = this.checkbox1
//continue per textbox in this pattern

然后只需在集合中查询与“文本框是否有值?是的,复选框是否选中?”谓词匹配的项目。

最后的答案是前面的查询是否返回了任何项目。

var isValid = this.Controls.OfType<Textbox>()
                  .Where(textbox => 
                          !string.IsNullOfWhitespace(textbox.Text) && 
                          (textbox.Tag as Checkbox).Checked)).Any();

这当然是假设 textbox(n)/checkbox(n) 验证是正确的,这个问题非常不清楚。

于 2012-11-30T13:34:31.653 回答