C#WinForms - 自动添加两个文本框

时间:2016-11-18 03:52:30

标签: c# .net winforms int type-conversion

我正在构建这三个文本框,如果填写了两个文本框,那么当我输入10 + 10时,将显示总和。结果是1010.有人可以帮我这个吗?

这是我的代码:

JPanel

5 个答案:

答案 0 :(得分:2)

这是var orders = from order in ctx.Order join orderItem in ctx.OrderItem on order.OrderId equals orderItem.OrderId select new { order.OrderDt, Sku = (oi == null) ? null : oi.Sku, Qty = (oi == null) ? (int?) null : oi.Qty }; 运算符的神奇(多态)。如果操作数是数字类型(int,long,double),它将添加两个操作数的值,如果它们是字符串类型,或者甚至是一个字符串和第二个整数(就像你的情况一样),它将连接两个操作数。在您的情况下,转换后的+会产生问题。您将通过从该行中删除该结果来获得预期结果。

附加注释:如果输入文本不可转换,.ToString()将抛出Convert.ToInt32,因此必须使用FormatException将文本转换为整数。所以代码看起来像这样:

int.TryParse

答案 1 :(得分:2)

在声明末尾删除toString

textBoxTotalAmount.Text = (Convert.ToInt32(textBoxTranspo.Text) + Convert.ToInt32(textBoxDaily.Text))

答案 2 :(得分:1)

这样做:

int ans = 0;
ans = Convert.ToInt32(textBoxTranspo.Text) + Convert.ToInt32(textBoxDaily.Text);
textBoxTotalAmount.Text = ans.ToString();

编辑:

这只是创建干净/整洁且更易读的代码的一种方法。其他人回答的方式

textBoxTotalAmount.Text = (Convert.ToInt32(textBoxTranspo.Text) + Convert.ToInt32(textBoxDaily.Text)).ToString();

也是正确的,但如果其他程序员会阅读代码,那么我写的第一个代码更具可读性,在这种情况下更有效。

你得到了1010,因为你错放了.ToString()

答案 3 :(得分:1)

也许应该是:

textBoxTotalAmount.Text = (Convert.ToInt32(textBoxTranspo.Text) + Convert.ToInt32(textBoxDaily.Text)).ToString();

答案 4 :(得分:1)

为了避免混淆,首先,尝试将文本框的值转换为int,如果成功则将其放入相应的变量中,如果不成功则输出无效的提示。

int input1 = 0;
int input2 = 0;

try
{
    input1 = Convert.ToInt32(textBoxTranspo.Text);
    input2 = Convert.ToInt32(textBoxDaily.Text); 
    ans = input1 + input2;


    if (!string.IsNullOrEmpty(textBoxTranspo.Text) && !string.IsNullOrEmpty(textBoxDaily.Text))
    {
        textBoxTotalAmount.Text = ans.ToString();
    }

}
catch (Exception)
{
    textBoxTotalAmount.Text = "Invalid input";
}