涉及C#中两个组框中多个单选按钮的计算

时间:2011-10-08 13:45:31

标签: c# radio-button

你好,我有点陷入涉及单选按钮的任务。我正在使用else ... if语句来确定选中了哪些单选框,然后我想要根据从两个组框中选择的单选按钮进行不同的计算。在一个组合框中,我有3个选项,分别是服装和价格,在另一个组合框中,我有4个选项,数量为1-4。当选择两个单选按钮(每个组框一个)时,我想进行计算。我认为我的if语句是正确的,但是我在进行计算并将其转换为字符串时遇到了麻烦,因为我只使用txtbox进行了计算,然后我将其转换为int或double并将它们包含在计算中。因为我没有在这个表格上使用文本框,所以我在这里难倒是我的代码:

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

namespace Radio_Button_task
{
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    bool blnChecked = true;

    private void btnEnd_Click(object sender, EventArgs e)
    {
        this.Dispose();
    }

    private void btnClear_Click(object sender, EventArgs e)
    {
        lblTotal.Text = "";
        rbtnJeans.Checked = false;
        rbtnQuant1.Checked = false;
        rbtnQuant2.Checked = false;
        rbtnQuant3.Checked = false;
        rbtnQuant4.Checked = false;
        rbtnShirt.Checked = false;
        rbtnShorts.Checked = false;
    }

    private void btnCalculate_Click(object sender, EventArgs e)
    {
        double dbTotal;
        if (rbtnJeans.Checked && rbtnQuant1.Checked)
        {
            dbTotal = Convert.ToDouble(28 * 1);
        }
        else if (rbtnJeans.Checked && rbtnQuant2.Checked)
        {
            dbTotal = Convert.ToDouble(28 * 2);
        }
        else if (rbtnJeans.Checked && rbtnQuant3.Checked)
        {
            dbTotal = Convert.ToDouble(28 * 3);
        }
        else if (rbtnJeans.Checked && rbtnQuant4.Checked)
        {
            dbTotal = Convert.ToDouble(28 * 4);
        }
        lblTotal.Text = "The total cost is: £" + dbTotal.ToString("0.00");
    }
}
}

3 个答案:

答案 0 :(得分:1)

您没有处理没有单选按钮或仅选中一个按钮的情况。将dbTotal初始化为零。

答案 1 :(得分:1)

问题是所有这些如果陈述都可能都是假的。如果发生这种情况,您最后会使用dbTotal而不会为其分配任何内容。编译器不喜欢这样。

简单的解决方法是在创建时初始化dbTotal

double dbTotal = 0;

答案 2 :(得分:0)

同样的事情可以这样做。也为项目选择运行类似的循环。这里的“gbQuan”是具有所有Radiobuttons的Groupbox / Panel。

private void btnCalculate_Click(object sender, EventArgs e)
{
double quan = 0, item = 28;
foreach (RadioButton temp in gbQuan.Controls)
{
    if (temp.Checked)
        quan = Convert.ToDouble(temp.Text);
}
lblTotal.Text = "The total cost is: £" + (item * quan).ToString("0.00");
}

希望它有所帮助。