在winformtextbox应用程序中显示总数

本文关键字:显示 winformtextbox 应用程序 | 更新日期: 2023-09-27 17:49:41

我试图在textBox1中显示总数,我如何编写将添加sub1, sub2, sub3的总价值并在texBox1中显示的代码。mealsub = sub1 + sub2 + sub3

我仍然收到一个错误。

当我选中标记1时,我如何给它一个特定的值?

if (radioButton1.Checked)
    drink = "";            
else if (radioButton2.Checked)
    drink = "";
else if (radioButton3.Checked)
    drink = "";
private void button1_Click(object sender, EventArgs e)
{
    string drink = String.Empty;
    string burger = String.Empty;
    QtextBox1.Enabled = false; 
    QtextBox2.Enabled = false;
    QtextBox3.Enabled = false;
    StextBox1.Enabled = false;
    StextBox2.Enabled = false;
    StextBox3.Enabled = false;
    if (checkBox1.Checked) //== true)
    {
        //QtextBox1.Enabled = true; 
        //burger += "Cheese Burger 'n";
        int q1;
        int.TryParse(QtextBox1.Text, out q1);
        //double q1 = double.Parse(QtextBox1.Text);
        double sub1 = q1 * 4.99; //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
        StextBox1.Enabled = true;
        StextBox1.Text = sub1.ToString("c");
    }
    if (checkBox2.Checked)
    {
        //QtextBox2.Enabled = true; 
        //burger += "Fat Burger 'n";
        //double q2 = double.Parse(QtextBox2.Text);
        int q2;
        int.TryParse(QtextBox1.Text, out q2);
        double sub2 = q2 * 7.99; //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
        StextBox2.Enabled = true;
        StextBox2.Text = sub2.ToString("c");
    }
    if (checkBox3.Checked)
    {
        //QtextBox3.Enabled = true; 
        //burger += "Veggie BUrger 'n";
        //double q3 = double.Parse(QtextBox3.Text);
        int q3;
        int.TryParse(QtextBox1.Text, out q3);
        double sub3 = q3 * 5.99; //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
        StextBox3.Enabled = true;
        StextBox3.Text = sub3.ToString("c");
    }
    // get selected drink
    if (radioButton1.Checked)
        drink = "";
    else if (radioButton2.Checked)
        drink = "";
    else if (radioButton3.Checked)
        drink = "";
    textBox1.Text = mealsub.ToString();
    double tax = .098;
    string taxtotal = mealsub + tax;
    textBox2.Text = tax.ToString();
    textBox3.Text = taxtotal.ToString();       
}

在winformtextbox应用程序中显示总数

您只需要声明sub1,…,子3在外部作用域中。这意味着下面的代码应该可以工作:

private void button1_Click(object sender, EventArgs e)
    {
        string drink = String.Empty;
        string burger = String.Empty;
        QtextBox1.Enabled = false; 
        QtextBox2.Enabled = false;
        QtextBox3.Enabled = false;
        StextBox1.Enabled = false;
        StextBox2.Enabled = false;
        StextBox3.Enabled = false;
        double sub1 = 0,sub2 = 0,sub3 = 0;
    if (checkBox1.Checked) //== true)
    {
        int q1;
        int.TryParse(QtextBox1.Text, out q1);
        sub1 = q1 * 4.99;
        StextBox1.Enabled = true;
        StextBox1.Text = sub1.ToString("c");
    }
    if (checkBox2.Checked)
    {
        int q2;
        int.TryParse(QtextBox1.Text, out q2);
        sub2 = q2 * 7.99;
        StextBox2.Enabled = true;
        StextBox2.Text = sub2.ToString("c");
    }
    if (checkBox3.Checked)
    {
        int q3;
        int.TryParse(QtextBox1.Text, out q3);
        sub3 = q3 * 5.99;
        StextBox3.Enabled = true;
        StextBox3.Text = sub3.ToString("c");
    }

    // get selected drink
    if (radioButton1.Checked)
        drink = "";
    else if (radioButton2.Checked)
        drink = "";
    else if (radioButton3.Checked)
        drink = "";

    textBox1.Text = mealsub.ToString();
    double tax = .098;
    string taxtotal = mealsub + tax;
    textBox2.Text = tax.ToString();
    textBox3.Text = taxtotal.ToString();
    textBox1.Text = (sub1 + sub2 + sub3).ToString();
}

有关范围的更多信息,请访问:msdn

两个问题

  1. 声明sub1, . .

    双sub1 sub2 sub3;sub1 = 0;Sub2 = 0;Sub3 = 0;//然后进入block

  2. textBox1.Text = (sub1 + sub2 + sub3).ToString(); // sub1, sub2 and sub3 are double type. You have to convert it to string

在您的代码中,变量sub1、sub2和sub3的作用域被限制在创建它们的if块中。

if (checkBox1.Checked) //== true)
{        
    int q1;
    int.TryParse(QtextBox1.Text, out q1);        
    double sub1 = q1 * 4.99; //sub1 being created here
    StextBox1.Enabled = true;
    StextBox1.Text = sub1.ToString("c");
}//sub1 does not exist here
if (checkBox2.Checked)
{        
    int q2;
    int.TryParse(QtextBox1.Text, out q2);
    double sub2 = q2 * 7.99; //sub2 being created here
    StextBox2.Enabled = true;
    StextBox2.Text = sub2.ToString("c");
}//sub2 does not exist here
if (checkBox3.Checked)
{
    int q3;
    int.TryParse(QtextBox1.Text, out q3);
    double sub3 = q3 * 5.99; //sub3 being created here
    StextBox3.Enabled = true;
    StextBox3.Text = sub3.ToString("c");
}//sub3 does not exist here

这意味着一旦执行离开第一个if块,sub1变量将被销毁。为了解决这个问题,必须在if块之外定义这些变量,最好是在函数调用之后。这样就可以在函数内部访问它们。即 .

private void button1_Click(object sender, EventArgs e)
    {
        string drink = String.Empty;
        string burger = String.Empty;
        double sub1=0 ,sub2=0 ,sub3=0; 
        //remaining code

代码中的另一件事是,我无法在任何地方看到初始化的mealsub变量。那么你应该在if语句块

后面加上这样的内容
// get selected drink
if (radioButton1.Checked)
    drink = "";
else if (radioButton2.Checked)
    drink = "";
else if (radioButton3.Checked)
    drink = "";
double mealsub=sub1+sub2+sub3;
textBox1.Text = mealsub.ToString();
double tax = .098;
string taxtotal = mealsub + tax;
textBox2.Text = tax.ToString();
textBox3.Text = taxtotal.ToString();
textBox1.Text = (sub1 + sub2 + sub3).ToString();
}