2011-02-07 21 views
0

3つのチェックボックスとボタンがあるフォームがあります。ボタンをクリックすると、メッセージボックスは、フォーム上でチェックされたすべてのアイテムを表示し、税金と合計金額前の価格で表示することを想定しています。税金と合計金額が処理される前の価格ですが、請求書として機能するメッセージボックスにそのフォームのユーザーがチェックした内容をどのように表示しますか?C#チェックされた項目が表示された請求書メッセージボックスを作成

if (checkCheeseSnackBread.Checked == true) 
     { 
      price += 10; 
      items += "Cheese Snack Bread - $10"; 
     } 
     else 
     { 
      price -= 10; 
     } 

ガイダンスが必要です。

+0

「請求書となるメッセージボックスで、そのフォームのユーザーがチェックしたもの」とはどういう意味ですか? – Pabuc

+0

各文字列を 'items'文字列に追加するときに' \ r \ n "'を各文字列に追加します。メッセージボックスに新しい行が追加されます。 –

+0

3つのチェックボックスとボタン。何も確認せずにボタンをクリックすると、メッセージボックスが表示され、チェックされたアイテムはないと言います。たとえば、1番目と3番目の項目をチェックすると、ボタンをクリックすると、メッセージボックスが表示され、1番目と3番目の項目が選択されたと表示されます。 – TheEnd

答えて

1

まず:このうち

チェック。チェックボックスがチェックされていない場合は、何もしないでください。あなたのコードでは、合計価格から商品価格を引きます。あなたがそれを購入しない場合は、それを追加しないでください。それで全部です。

これで、購入したことが分かったので、StringBuilderを使用してメッセージを取り込むことができます。 クイックや汚れ:

StringBuilder builder = new StringBuilder(); 
builder.AppendLine("Ticket") 
builder.AppendLine(); 

if (checkCheeseSnackBread.Checked) // == true is not needed 
    {    
     price += 10;    
     items += "Cheese Snack Bread - $10";  
     builder.AppendLine(Cheese Snack Bread - $10);  
    }   

// Do the same for other checkboxes 
// Add the totals  
Messagebox.Show(builder.ToString()); 

他の方法があります:フォーム上のコントロールをループは、それがチェックボックスだ場合==>のStringBuilderにテキストを追加します。このように、チェックボックスの数は関係ありません。あなたは、チケット(メッセージボックス)に印刷するためにtext-propertyが使用されていることを確認してください。

+0

しかしCheckedChangedイベント中にアイテムの集団が発生するので、アイテムの1つをチェックしてチェックを外してボタンをクリックすると、何度も何度も同じアイテムが表示されます。 – TheEnd

+0

あなたの場合、このコードをbutton_Clickイベントに入れ、チェックボックスがオンになっているかどうかを確認するだけです。この方法では、誰かがチェックボックスを変更するたびに1回だけ見る必要があります。 – Koen

+0

私はその論理的な間違いを実感しました。くそー。ありがとう。 – TheEnd

関連する問題