2016-11-18 5 views
0

クイックアップデート、なぜコードが動作しないのか、私がチェックしたいすべてのテキストボックスがグループボックスにあり、問題が解決した場合、問題が解決されています。 これには方法がありますか?隠し空のテキストボックスを無視する

解決策が見つかりました。 将来の参照のために以下に掲示します。

あなたのすべての入力についてもう一度おねがいします。

 foreach (var textBox in Controls.OfType<GroupBox>().SelectMany(groupBox => groupBox.Controls.OfType<TextBox>())) 
    { 
     if (textBox is TextBox && textBox.Visible && string.IsNullOrEmpty(textBox.Text)) 
     { 
      MessageBox.Show($"Missing {textBox.Name} value!"); 
      Focus(); 
      return; 
     } 
    } 
+4

ネストされたグループボックスでネジ止めされません確認してください、私は(真larg.Visible ==)は '**非大文字のを注意してください場合は、'探していると考えているでしょう

private void Form1_Load(object sender, EventArgs e) { CheckControlCollection(this.Controls); } private void CheckControlCollection(Control.ControlCollection cc) { foreach (Control c in cc) if (c is GroupBox) CheckControlCollection(c.Controls); else CheckControl(c); } private void CheckControl(Control c) { if (c is TextBox && c.Visible && string.IsNullOrEmpty(c.Text)) MessageBox.Show($"TextBox {c.Name} is empty"); } 

:ここではどのようですブール値**。私はあなたの行が 'if(larg.Hidden == false)'を読むべきであるならば、hiddenがtextBoxesのプロパティであると確信していません '問題はboolが大文字にすることができないということです。私たちにエラーを教えてもらうのに役立ちます –

+0

正しく取得できますか?あなたのコードは動作しますが、* if(larg.Hidden == False)*コードラインにエラーが表示されます。コンパイラエラーが発生しますか?あなたはランタイムエラーが発生すると思います。 これはwpfまたはwinformsですか?あなたはそれを「フォーム」と呼ぶので、winformsだと思いますよね? – TripleEEE

+0

@ Alfie Goodacreコードは機能しますが、今度は次をクリックしても何も起こりません。 – MarcIT

答えて

1

代わりにフォームのコントロールのforeachを使用することを考えましたか?以下のような何か:

 foreach (Control c in Controls) 
     { 
      if (c is TextBox && c.Visible && string.IsNullOrEmpty(c.Text)) 
      { 
       MessageBox.Show($"TextBox {c.Name} is empty"); 
      } 
     } 

EDIT:あなたのフォームはグループボックスが含まれている場合は、あまりにもサブのforeachで自分のコントロールを反復処理する必要がありますので、グループボックスは、コントロールのグループです。これは、我々は

+0

コードは機能しますが、テキストボックスに何も書き込まれていないときにメッセージが表示されません。 – MarcIT

+1

@MarcIT ** larg *と** alt **は何ですか?あなたのコードからテキストボックスであると仮定します。もしそうなら、現在のループ反復の可視性の代わりに可視性の状態をチェックしていますが、フォームのすべてのテキストボックスをチェックしていますか? – Innat3

+0

はいそれはテキストボックスです。あなたは私にexampeをお願いしますか? – MarcIT

関連する問題