在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();
}
您只需要声明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
两个问题
-
声明sub1, . .
双sub1 sub2 sub3;sub1 = 0;Sub2 = 0;Sub3 = 0;//然后进入block
-
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();
}