c#中涉及两个组框中多个单选按钮的计算
本文关键字:计算 单选按钮 两个 | 更新日期: 2023-09-27 18:10:40
你好,我在一个涉及单选按钮的任务上有点卡住了。我正在使用else…if语句来确定选中了哪些单选框,然后我希望根据从两个组框中选择的单选按钮执行不同的计算。在一个分组框中,我有3个选项,分别是服装和价格,在另一个分组框中,我有4个选项,分别是数量1-4。当选择两个单选按钮时(每个组框中一个),我希望进行计算。我认为我的if语句是正确的,但我在做计算和转换为字符串时遇到了麻烦,因为我只使用txtboxes进行计算,然后将其转换为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");
}
}
}
您没有处理没有单选按钮或只选中一个的情况。初始化dbTotal为0
问题是所有这些if语句都可能为假。如果发生这种情况,你会在最后使用dbTotal
,而不给它赋任何值。编译器不喜欢这样。
简单的修复方法是在创建dbTotal
时初始化它:
double dbTotal = 0;
同样的事情可以这样做。对Items选择也运行类似的循环。这里的"gbQuan"是包含所有单选按钮的组框/面板。
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");
}
希望能有所帮助。