2016-05-31 12 views
-4

私はユーザーがゲストの数を選択するフォームを持っています。私は2番目のフォームでは不要な余分なテキストボックスを隠したいと思います。数値に基づいてテキストボックスを非表示にするにはどうすればよいですか?

example userはform2上のform1で8人のゲストを選択します。私はtextbox9とtextbox10を非表示にしてゲスト名を入力する必要があるテキストボックス1-8しか表示しないようにします。

Visual StudioでWindows Forms C#を使用してこれを行うにはどうすればよいでしょうか?ここで

は一例ですが、あなたがゲストの数が多いため

Textbox2.Visible = userChoice >= 2; 
Textbox3.Visible = userChoice >= 3; 

など

を行うことができ、ゲストの限られた最大数の

private void DisplayTextBoxs() 
    { 
     if (xBillInformationForm.dGuestNumber == 1) 
     { 
      xCustomer1Label.Visible = true; 
      xCustomer1TextBox.Visible = true; 
     } 
     if (xBillInformationForm.dGuestNumber == 2) 
     { 
      xCustomer1Label.Visible = true; 
      xCustomer1TextBox.Visible = true; 
      xCustomer2Label.Visible = true; 
      xCustomer2TextBox.Visible = true; 
     } 
     if (xBillInformationForm.dGuestNumber == 3) 
     { 
      xCustomer1Label.Visible = true; 
      xCustomer1TextBox.Visible = true; 
      xCustomer2Label.Visible = true; 
      xCustomer2TextBox.Visible = true; 
      xCustomer3Label.Visible = true; 
      xCustomer3TextBox.Visible = true; 
     } 
     if (xBillInformationForm.dGuestNumber == 4) 
     { 
      xCustomer1Label.Visible = true; 
      xCustomer1TextBox.Visible = true; 
      xCustomer2Label.Visible = true; 
      xCustomer2TextBox.Visible = true; 
      xCustomer3Label.Visible = true; 
      xCustomer3TextBox.Visible = true; 
      xCustomer4Label.Visible = true; 
      xCustomer4TextBox.Visible = true; 
     } 
    } 
+0

jqueryに必要なテキストボックスだけを描画できませんでしたか?id = "TextBox" + i; }のテキストボックスを描画する – jelleB

+0

これはC#でビジュアルスタジオを使用して書かれているはずです。 – yaksushi

+0

htmlWriterで(i = 0、i jelleB

答えて

0

非常に反復的なようです/ textboxes、これは扱いにくくなります。

+0

これは10個のテキストボックスの中で最も簡単な方法です – yaksushi

0

フォームを動的に構築する場合は、すべてのテキストボックスを配列に配置してループすることができます。あなたのコードを投稿しない限り、しかし、我々は

TextBow[10]textboxes; 
textBoxes[0] = your first textbox 
textBoxes[1] = you second textbox 

For(int i = userChoice -1; i < textBoxes.Length; i++){ 
    textBoxes[i].Visible = false; 
} 

を良い答えを与えることはできませんので、私のコードはuserChoiceから始まり、配列

+0

私はまだそれの周りに私の頭をラップしようとしていたとして、これのためのコード。それは非常に繰り返しているように思われる – yaksushi

+0

私の答えはあなたが何度も繰り返す必要がないことを確認します – jelleB

0

内のすべてのテキストボックスを経由

var quantity = convert.ToInt32(xBillInformationForm.dGuestNumber); 

<table> 
    for(int i=1, i<=quantity; i++) 
    { 
     <tr> 
      <td> 
       <label id="name">Name</label> 
       <input id="address" type="text" placeholder="address" /> 
      </td> 
     </tr>   
    } 
</table> 

をループしてみさらに2つのボタンを追加したり、2番目のフォームで「ゲストの追加」や「ゲストの削除」のようなリンクを追加してjqueryで処理することができます

+0

それはASP.Net MVCではなく、Windowsフォームアプリケーション(デスクトップ)です。 –

+0

これは** forループ**のみです。どこでも使えます。つまり、MVC、Asp.Net、またはWindowsフォームアプリケーションの場合、C#コーディングロジックはすべて同じです。構文を変更し、必要な場所でこのロジックを実装するだけです。 – Riddhi

関連する問題