-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したがって、すべての TextBoxes が満たされているかどうかを確認するために使用できます。

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 に答える