textbox输入数值后相加然后显示出来的问题
我是用类似与这样的代码操作
double d1 = double.Parse(TextBox1.Text);
double d2 = double.Parse(TextBox2.Text);
double d = d1 + d2;
MessageBox.Show(d.ToString());
可是要是我其中一个textbox里没填写数值的话 就会跳出格式不正确错误
请问要如何把没填数值的那个textbox转成double或int的"0" 这样就可以了吗 --------------------编程问答-------------------- double d1 = double.Parse(TextBox1.Text.Trim() == "" ? 0 : TextBox1.Text);
double d2 = double.Parse(TextBox2.Text.Trim() == "" ? 0 : extBox2.Text);
double d = d1 + d2;
MessageBox.Show(d.ToString());
--------------------编程问答--------------------
private void button9_Click(object sender, EventArgs e)--------------------编程问答--------------------
{
double d1,d2;
double.TryParse(textBox1.Text,out d1);
double.TryParse(textBox2.Text,out d2);
double d = d1 + d2;
MessageBox.Show(d.ToString());
}
--------------------编程问答--------------------
private void button1_Click(object sender, EventArgs e)
{
double d1;
try
{
d1 = double.Parse(textBox1.Text);
}
catch
{
d1 = 0;
}
double d2;
try
{
d2 = double.Parse(textBox2.Text);
}
catch
{
d2 = 0;
}
double d = d1 + d2;
MessageBox.Show(d.ToString());
}
--------------------编程问答-------------------- 3楼正解啊,不过我看不懂。没办法 --------------------编程问答-------------------- 建议用1楼或2楼的方法 --------------------编程问答--------------------
double a = 0, b = 0, c = 0;
double.TryParse(textBox1.Text, out a);
double.TryParse(textBox2.Text, out b);
c = a + b;
MessageBox.Show(c.ToString());
2楼的,看出哪错了吗? 呵呵 --------------------编程问答-------------------- 3楼的是如果你输入的不能转换为double,就默认为0。 --------------------编程问答-------------------- 如果要实现如下效果..简单易懂..
--------------------编程问答-------------------- 好像这样不行!
double d1=0;
double d2=0;
if(TextBox1.Text.Trim()==""
d1=0;
else
d1 = double.Parse(TextBox1.Text.Trim());
if(TextBox2.Text.Trim()==""
d2=0;
else
d2 = double.Parse(TextBox2.Text.Trim());
double d = d1 + d2;
MessageBox.Show(d.ToString());
书上有:
http://www.china-pub.com/195430&ref=xilie
http://www.china-pub.com/195661&ref=xilie
--------------------编程问答--------------------
呵呵,应该这样
private void button9_Click(object sender, EventArgs e)--------------------编程问答-------------------- 我是楼主
{
double d1,d2;
if (!double.TryParse(textBox1.Text, out d1)) { MessageBox.Show("text1 不是有效数据"); textBox1.Focus(); return; }
if (!double.TryParse(textBox2.Text, out d2)) { MessageBox.Show("text2 不是有效数据"); textBox2.Focus(); return; };
double d = d1 + d2;
MessageBox.Show(d.ToString());
}
大家的方法很多 但我如果是不至2个textbox 有10几20个的话 每个都要这样 if吗???? --------------------编程问答-------------------- 重写类,或调用公用方法
各个textBox的Validated事件,指定下面方法.
private void textBox_Validated(object sender, EventArgs e)--------------------编程问答-------------------- 个人认为1楼的办法最好了 --------------------编程问答-------------------- 学习 --------------------编程问答-------------------- private void button9_Click(object sender, EventArgs e)
{
double d0;
if (((TextBox)sender).Text.Trim() != "" && !double.TryParse(((TextBox)sender).Text,out d0))
{
MessageBox.Show("数据格式无效");((TextBox)sender).Focus();
}
}
//
private void button9_Click(object sender, EventArgs e)
{
double d1,d2;
double.TryParse(textBox1.Text,out d1);
double.TryParse(textBox2.Text,out d2);
double d = d1 + d2;
MessageBox.Show(d.ToString());
}
{
double d1,d2;
double.TryParse(textBox1.Text,out d1);
double.TryParse(textBox2.Text,out d2);
double d = d1 + d2;
MessageBox.Show(d.ToString());
}
--------------------编程问答-------------------- 如果不想多写的话,就在前台或后台验证输入的方法里面 if(输入非法或无输入) d=0 --------------------编程问答--------------------
用下面这个,不管你多少个都行
private void button1_Click(object sender, EventArgs e)
{
double dbResulet = 0;
double tempDouble = 0;
foreach (Control tb in this.Controls)
{
if (tb is System.Windows.Forms.TextBox)
{
double.TryParse(((TextBox)tb).Text, out tempDouble);
dbResulet += tempDouble;
}
}
MessageBox.Show(dbResulet.ToString());
}
补充:.NET技术 , C#