2016-04-07 15 views
-2

以下のコードは、フィールド内のテキストを検索するフォームです。テキストが見つからない場合は、再度試すことができるメッセージボックスが表示されます。コードは次のとおりです:C#メッセージボックスの表示

if (string.IsNullOrWhiteSpace(OrderField.Text)) 
{ 
    MessageBox.Show("Please input Order Number"); 
} 
else 
{ 
    MessageBox.Show("Derp"); 
} 
if (string.IsNullOrWhiteSpace(BoxField.Text)) 
{ 
    MessageBox.Show("Please input Number of Boxes"); 

} 
else 
{ 
    MessageBox.Show("Derp"); 
} 
+6

をそして、あなたの問題がある ループフォームのすべてのTextInputコントロールは、あなたがタグの属性によって、すべてのテキストボックスのために必要フレンドリ名を設定する必要がありますか? – Bauss

+2

@Baussがそれを何度も何度も読み込んだら、メッセージボックスに入力フィールドがあるように思えます。これはモーダルで始まる独自のフォームを作成するか、またはVBライブラリをインポートして入力ボックスを使用することで実現できます –

+0

あなたのコードが実際に何をしたいのかを助けてください。 –

答えて

0

入力が空の値を持つ場合は、フォームを検証したいと思いますか?私は方法抽出示唆

foreach(Control c in this.Controls) { 
    if(c is TextBox) { 
     var textbox = c as TextBox; 
     if(string.IsNullOrEmpty(textbox.Text)) { 
     MessageBox.Show(textbox.Tag.ToString() + " is empty"); 
     } 
    } 
} 
1

using System.Linq; 

... 

private static Boolean IsControlValid(Control control) { 
    if (!String.IsNullOrWhiteSpace(control.Text)) 
    return true; 

    // Let's be nice: put key board focus to the control 
    if (control.CanFocus) 
    control.Focus(); 

    MessageBox.Show(String.Format("Please input number at {0}.", control.Name)); 

    return false; 
} 

... 

private void SaveAndClose() { 
    // Put here all controls to be tested 
    Control[] controls = new Control[] { 
    OrderField, 
    BoxField, 
    }; 

    // do we have any controls that should be filled in? 
    if (controls.Any(control => !IsControlValid(control))) 
    return; 

    ... 
    // all controls are valid; so save/send the data 
    ... 

    Close(); // close the form 
} 
関連する問題