簡體   English   中英

涉及C#中兩個組框中多個單選按鈕的計算

[英]Calculations involving multiple radio buttons in two group boxes in C#

你好,我有點卡在涉及單選按鈕的任務上。 我正在使用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");
    }
}
}

您沒有處理沒有單選按鈕或僅選中一個按鈕的情況。 將dbTotal初始化為零。

問題是所有這些如果陳述都可能都是假的。 如果發生這種情況,你最后會使用dbTotal ,而不dbTotal它分配任何內容。 編譯器不喜歡這樣。

簡單的解決方法是在創建dbTotal時初始化它:

double dbTotal = 0;

同樣的事情可以這樣做。 也為項目選擇運行類似的循環。 這里的“gbQuan”是具有所有Radiobutton的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");
}

希望能幫助到你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM