2012-11-30 158 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)的驗證正確,問題很不清楚