你好,我有点陷入涉及单选按钮的任务。我正在使用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");
}
}
}
答案 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");
}
希望它有所帮助。