2016-11-13 8 views
-1

私のコードが機能しない理由と苦労しています。これは学校の割り当てのためのものです。私は助けを求めることが許されている。私はプログラミングが初めてです。私はビジュアルスタジオ2015を使用しています。私はそれを取得しようとしているので、ユーザーは1つのチェックボックスだけを選択する必要があります。この課題には他のチェックボックスがありますので、最後にチェックしても機能しません。私はエラーを取得していない、それは何もしません。ありがとう!チェックボックスのみが許可され、コードが機能しない

私のチェックボックスがCheckBox1を、checkBox2、命名されている...... 5

私の全体の現在のコードは次のようになります。

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 

namespace Chapter6Homework 
{ 
    public partial class IceCreamOrder : Form 
    { 
     public IceCreamOrder() 
     { 
      InitializeComponent(); 
     } 

     private void btn_Clear_Click(object sender, EventArgs e) 
     { 
      // Clear flavors by automatically selecting default button on Clear button click 
      rdbDefault.Checked = true; 

      // Clear toppings 
      checkBox_CookieDough.CheckState = CheckState.Unchecked; 
      checkBox_ChocolateSyrup.CheckState = CheckState.Unchecked; 
      checkBox_Marshmallows.CheckState = CheckState.Unchecked; 
      checkBox_OreoPieces.CheckState = CheckState.Unchecked; 
      checkbox_Sprinkles.CheckState = CheckState.Unchecked; 
      checkbox_Walnuts.CheckState = CheckState.Unchecked; 

      // Clear List Box 
      lstDisplay.Items.Clear(); 

      // Clear scoops 
      checkBox1.CheckState = CheckState.Unchecked; 
      checkBox2.CheckState = CheckState.Unchecked; 
      checkBox3.CheckState = CheckState.Unchecked; 
      checkBox4.CheckState = CheckState.Unchecked; 
      checkBox5.CheckState = CheckState.Unchecked; 
     } 

     private void btn_CalculateCost_Click(object sender, EventArgs e) 
     { 
      // Verify user selected a flavor 
      if (rdbDefault.Checked == true) 
      { 
       MessageBox.Show("Please select a flavor"); 
       return; 
      } 

      // Verify user seleted # of scoops 
      if (checkBox1.CheckState == CheckState.Unchecked && 
        checkBox2.CheckState == CheckState.Unchecked && 
        checkBox3.CheckState == CheckState.Unchecked && 
        checkBox4.CheckState == CheckState.Unchecked && 
        checkBox5.CheckState == CheckState.Unchecked) 
      { 
       MessageBox.Show("You must select a number of scoops. 1 is a must but 5 is recommended!"); 
       return; 
      } 

      //Verify user got the toppings they wanted if any 
      if (checkBox_ChocolateSyrup.CheckState == CheckState.Unchecked && 
       checkBox_CookieDough.CheckState == CheckState.Unchecked && 
       checkBox_Marshmallows.CheckState == CheckState.Unchecked && 
       checkBox_OreoPieces.CheckState == CheckState.Unchecked && 
       checkbox_Sprinkles.CheckState == CheckState.Unchecked && 
       checkbox_Walnuts.CheckState == CheckState.Unchecked) 
      { 
       DialogResult dr = MessageBox.Show("Are you sure you don't want toppings?", 
        "help", MessageBoxButtons.YesNo); 
       switch (dr) 
       { 
        case DialogResult.Yes: break; 
        case DialogResult.No: return; 
       } 
      } 

      // Declare Variables and constants 
      double flavorCost = FlavorCost(); 
      double toppingCost = ToppingCost(); 
      double scoops = Scoops() * flavorCost; 
      double subTotal = (flavorCost + toppingCost + scoops); 
      double salesTax = subTotal * .08; 
      double total = subTotal + salesTax; 

      // Display total price of order 
      lstDisplay.Items.Clear(); 
      lstDisplay.Items.Add("Total: " + total.ToString("C2")); 

      // Display total sales tax 
      lstDisplay.Items.Add(""); 
      lstDisplay.Items.Add("Sales Tax: " + salesTax.ToString("C2")); 

      // Display Flavor Cost 
      lstDisplay.Items.Add("Flavor:  " + flavorCost.ToString("C2")); 

      // Display Scoops Cost 
      lstDisplay.Items.Add("Scoops:  " + scoops.ToString("C2")); 

      // Display Toppings 
      lstDisplay.Items.Add("Toppings: " + toppingCost.ToString("C2")); 
     } 
     // Get flavor cost 
     Double FlavorCost() 
     { 
      if ((radioButton_Chocolate.Checked == true) || (radioButton_Strawberry.Checked == true)) 
       return 1.5F; 
      else if (radioButton_Vanilla.Checked == true) 
       return 1.25F; 
      else 
       return 0; 
     } 

     // Get num of scoops 
     Double Scoops() 
     { 
      if (checkBox1.Checked == true) 
       return 1; 
      else if (checkBox2.Checked == true) 
       return 2; 
      else if (checkBox3.Checked == true) 
       return 3; 
      else if (checkBox4.Checked == true) 
       return 4; 
      else if (checkBox5.Checked == true) 
       return 5; 
      else 
       return 0; 
     } 

     // Get Toppings 
     Double ToppingCost() 
     { 
      if ((checkBox_ChocolateSyrup.Checked == true) || 
       (checkBox_Marshmallows.Checked == true) || 
       (checkbox_Sprinkles.Checked == true)) 
       return .25F; 
      else if ((checkBox_OreoPieces.Checked == true) || 
        (checkBox_CookieDough.Checked == true) || 
        (checkbox_Walnuts.Checked == true)) 
       return .50F; 
      else 
       return 0; 
     } 

     private void IceCreamOrder_Load_1(object sender, EventArgs e) 
     { 
      //Set Default to true on load 
      rdbDefault.Checked = true; 
     } 

     internal class Sub 
     { 
     } 

     private void checkBox1_CheckedChanged(object sender, EventArgs e) 
     { 
      int numberChecked = 0; 
      CheckBox[] array = new 
      CheckBox[] { checkBox1, checkBox2, checkBox3, checkBox4, checkBox5 }; 
      for (int i = 0; i < array.Length; i++) 
      { 
       if 
       (array[i].Checked) 
        numberChecked++; 
       else if 
       (numberChecked > 1) 
        MessageBox.Show("You have checked " 
       + numberChecked.ToString() + " checkBoxes. Only one is allowed."); 
       else 
        return; 
      } 

     } 
    } 
} 
+0

スタート(送信者が選択したチェックボックスです)それ以外のブロックは第3に、 'breakまたはreturn'キーワードの使用方法と使用方法を調べてください。 – MethodMan

+2

あなたのコードは正しいようです。どのような技術を使っていますか?それはWindowsフォーム、WPFなどです。また、RadioButtonの動作を探している可能性があります。 – Emad

+0

このプロジェクトのコード全体を追加しました。私は複数の問題があることを知っていますが、チェックボックスは私が取り組もうとしている最初のものです。私は自分のコードに間違いがない。それは何もしません。ラジオボタンがいくつかありますが、これらはチェックボックスです。 – Jessie

答えて

1

使用RadioButtonグループで。

はあなたのソリューションを動作させるには:第二あなたの `の場合に関しては、コードのフォーマットとより一貫して、デバッガを使用して、コードのステップと

private void checkBox1_Checked(object sender, EventArgs e) 
{ 
var array = new CheckBox[] { checkBox1, checkBox2, checkBox3, checkBox4, checkBox5 }; 
foreach(var checkbox in array) 
{ 
    if(checkbox != sender){ 
     checkbox.IsChecked = false 
    } 
} 
関連する問題