计算输出不传输

我正在尝试将多个用户输入框输入添加在一起进行计算,然后将它们显示到标签框中。当我使用计算 btn 时,我不知道为什么。我的标签框刚好等于 0。我的 btnClear 也可以清除输入文本框。如果我改变 miscChargelbl.Text = miscCharge.ToString();到 miscChargelbl.Text = 1.ToString();它将杂项费用标签框显示为 1。但如果我将其保留为 0,则意味着它不会从 CalcMiscCharges() 中进行计算。我如何才能将正确的文本输出到空标签中。

    //*Variables*//
    private double dayCharge;
    private double mediCharge;
    private double surgCharge;
    private double labCharge;
    private double rehabCharge;
    private double daysStay;
    private double stayCharge;
    private double miscCharge;
    private double totalCharge;
    public Form1()
    {
        InitializeComponent();
    }

    private void Form1_Load(object sender,EventArgs e)
    {

    }

    private void btnExit_Click(object sender,EventArgs e)
    {
        this.Close();
    }

    private void btnCalc_Click(object sender,EventArgs e)
    {
        /*I Cant figure why this doesn't change the labels to the inputted text*/
        miscChargelbl.Text = miscCharge.ToString();
        stayChargelbl.Text = stayCharge.ToString();
        totalChargelbl.Text = totalCharge.ToString();
        
    }
    private void CalcStayCharges()
    {
        /*Calculate the days stayed price*/
        dayCharge = 350;
        daysStay = Double.Parse(daySpenttxt.Text);
        stayCharge = dayCharge * daysStay;
       
        
    }
    private void CalcMiscCharges() 
    {
        mediCharge = double.Parse(medicationtxt.Text);
        surgCharge = double.Parse(surgicaltxt.Text);
        labCharge = double.Parse(labfeetxt.Text);
        rehabCharge = double.Parse(rehabtxt.Text);

        miscCharge = mediCharge + surgCharge + labCharge + rehabCharge;
        
    }
    private void CalcTotalCharges()
    {
        /*Add stay charge with misc charge*/
        totalCharge = stayCharge + miscCharge;
    }

    private void btnClear_Click(object sender,EventArgs e)
    {

        /*Clears and resets textboxes for new data */
        medicationtxt.Text = String.Empty;
        surgicaltxt.Text = String.Empty;
        labfeetxt.Text = String.Empty;
        rehabtxt.Text = String.Empty;
        daySpenttxt.Text = String.Empty;
    }
}

} '''

LVCHA166 回答:计算输出不传输

(评论会很乱)

我建议您阅读 Binding 并改用 Binding。暂时(可能是一个爱好项目),尝试像这样更改代码:

//*Variables*//
private decimal dayCharge;
private decimal mediCharge; // change the rest to decimal also
                            // ...

private void btnCalc_Click(object sender,EventArgs e)
{
    Calculate();
}

private void Calculate()
{
    /* Use TryParse instead of Parse */
    
    /*Calculate the days stayed price*/
    dayCharge = 350;
    daysStay = decimal.Parse(daySpenttxt.Text);
    stayCharge = dayCharge * daysStay;

    mediCharge = decimal.Parse(medicationtxt.Text);
    surgCharge = decimal.Parse(surgicaltxt.Text);
    labCharge = decimal.Parse(labfeetxt.Text);
    rehabCharge = decimal.Parse(rehabtxt.Text);

    miscCharge = mediCharge + surgCharge + labCharge + rehabCharge;

    /*Add stay charge with misc charge*/
    totalCharge = stayCharge + miscCharge;

    /*I Cant figure why this doesn't change the labels to the inputted text*/
    miscChargelbl.Text = miscCharge.ToString();
    stayChargelbl.Text = stayCharge.ToString();
    totalChargelbl.Text = totalCharge.ToString();
}

private void btnClear_Click(object sender,EventArgs e)
{

    /*Clears and resets textboxes for new data */
    medicationtxt.Text = String.Empty;
    surgicaltxt.Text = String.Empty;
    labfeetxt.Text = String.Empty;
    rehabtxt.Text = String.Empty;
    daySpenttxt.Text = String.Empty;
}

PS:还要注意,这些变量都不需要声明。它们都用于计算并且只是局部变量。即:

    private void Calculate()
    {
        /* Use TryParse instead of Parse */
        
        /*Calculate the days stayed price*/
        var dayCharge = 350;
        var daysStay = decimal.Parse(daySpenttxt.Text);
        var stayCharge = dayCharge * daysStay;
// ...    
本文链接:https://www.f2er.com/8435.html

大家都在问