2012-11-30 160 views
-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

欢迎来到堆栈溢出![你有什么尝试?](http://whathaveyoutried.com) –

+1

这里没有问题。 – Beska

+0

请问,得到你的问题的更多细节,所以我们可以帮助你 – jainvikram444

回答

1

你可以得到所有的文本框列表中,然后在每个盒子来检查数据迭代..

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

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

同样可以为其他控件

+3

使用扩展方法'OfType '而不是'Where(type check)'http://msdn.microsoft.com/en-us/library/bb360913。ASPX'只返回源这些元素可以转换为类型TResult' – asawyer

+0

是它好吗?...... –

+0

,但我想检查相应的像TextBox1中,TextBox2中,checkbox1,checkbox2 – user1862352

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); 
1
foreach (Textbox g in this.Controls.OfType<Textbox>()) 
{ 
if(g.text == "") 
{ 
this.Controls[checkbox[gettextbox name and parse it to getnumber]].checked = true; } 
} 
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(); 

这是假设,当然,该文本框(N)/复选框(n)的验证正确,问题很不清楚