单击按钮时,将两个文本框相加

时间:2014-01-23 08:58:13

标签: c# textbox

好的,这是我的问题。我创建了textbox1以包含计算,每当我点击btnOne时,txtbox1都会给出结果。每次单击btnTwo按钮时,名为textbox2的第二个文本框将在textbox1中添加数字。我曾尝试使用下面的代码,但它只将textbox1中的数字作为文本添加,因此将数字放在textbox2中的数字旁边,而不是将它们相加。我怎样才能使它发挥作用?

string a;
void textbox1_TextChanged(object sender, EventArgs e)
{
    a = textbox1.Text;
}

void btnTwo_Click(object sender, EventArgs e)
{            
    textbox2.Text += a.ToString();    
}

6 个答案:

答案 0 :(得分:2)

您应文本转换为Double(ot int

using System.Globalization;

    void btnTwo_Click(object sender, EventArgs e) {
      Double a;
      Double b;

      // Let's be generous and accept leading/trailing spaces
      if (!Double.TryParse(textbox1.Text.Trim(), NumberStyles.Any, CultureInfo.InvariantCulture, out a)) {
        textbox2.Text = "First term is of incorrect format.";

        return;
      }

      if (!Double.TryParse(textbox2.Text.Trim(), NumberStyles.Any, CultureInfo.InvariantCulture, out b)) {
        textbox2.Text = "Second term is of incorrect format.";

        return;
      }

      textbox2.Text = (a + b).ToString(CultureInfo.InvariantCulture);
    }

答案 1 :(得分:0)

运算符 + 将连接字符串。所以你必须在添加之前将它们转换为int:

if(String.IsNullOrEmpty(textbox2.Text)) 
    textbox2.Text = a;
else if(!String.IsNullOrEmpty(a)) 
    textbox2.Text = Convert.toInt32(textbox2.Text) + Convert.toInt32(a);  

答案 2 :(得分:0)

试试这个

 txt2.Text = (Convert.ToInt32(txt1.Text) + Convert.toInt32(a);

答案 3 :(得分:0)

删除:

string a;
 void textbox1_TextChanged(object sender, EventArgs e)
 {
      a = textbox1.Text;
 }

<强>替换

 void btnTwo_Click(object sender, EventArgs e)
 {            
      textbox2.Text += a.ToString();    
 }

。通过

 void btnTwo_Click(object sender, EventArgs e)
 {            
     textbox2.Text = int.TryParse(textbox2.Text) + int.TryParse(textbox1.Text);    
 }

答案 4 :(得分:0)

这样做

void btnTwo_Click(object sender, EventArgs e)
 {            
     int someInt,someInt2;
     if(int.TryParse(a.Trim(),out someInt) && int.TryParse(textbox2.Text.Trim(),out someInt2))
      textbox2.Text = (someInt + someInt2).ToString();    
 }

答案 5 :(得分:0)

查看以下链接:http://msdn.microsoft.com/en-us/library/system.int32.parse(v=vs.110).aspx

所以你有几个选择,如果你可以保证它总是一个数字(你不能,但如果你只是试验,继续)那么使用Parse。

因此在代码中,将变量更改为int,然后:

a = Int32.Parse(textbox1.Text);

...

int textbox1Number = Int32.Parse(textbox1.Test);
textbox2.Text = (a += textbox1Number).toString();

如果在两个字符串上使用+ =,则将它们连接起来。你需要int来做数学。

看看tryParse方法来处理奖励积分的无效条目。