使用单个文本框进行添加

本文关键字:添加 文本 单个 | 更新日期: 2023-09-27 18:01:57

我正在编写一个c# windows窗体应用程序,用于在单个文本框中添加两个条目。

我有一个文本框,1个添加按钮和1个结果按钮。

我需要实现以下算法,

  1. 用户在文本框中输入no。它将存储在int n1中。

  2. 用户将按添加按钮。此时,textbox.text的内容将被清除,用户必须能够在其中输入第二个值。

  3. 第二个值将被存储在int n2中。

  4. 现在当用户点击结果按钮时,他应该得到int result=n1+n2

我在添加按钮的点击事件中写了以下内容,

n1=convert.Int32(textbox1.text); 
textbox1.text=""; 

n2=convert.Int32(textbox1.text);//exception occures here 

结果按钮的点击事件有

textbox1.text=result.tostring(); 

我了解了这个程序的工作原理,发现这是由于NULL的值赋给了int n2

我有点困惑,我怎么能实现上述问题使用单个文本框?

是否有办法通过用户通过文本框字段提供textbox.txt值?

文本框是否有需要设置的属性?

我是。net的新手!请帮助!

提前感谢您的关注!

使用单个文本框进行添加

n2 = Convert.Int32(textbox1.Text);移动到结果按钮的点击事件

添加按钮点击事件:

n1=convert.Int32(textbox1.text);   
textbox1.text=""; 

结果按钮的点击事件:

n2=convert.Int32(textbox1.text);
result=n1+n2;
textbox1.text=result.tostring(); 

试试这样:

private int result=0;
addMethod()
{
    //here you can use also int.TryParse
    if(string.isnullorempty(textbox1.text.trim()))
    textbox1.text="0";
    result+=convert.toint32(textbox1.text);
    textbox1.text=string.empty;
}
resultMethod()
{
    textbox1.text=result.tostring();
}

查看下面的代码

      private int i = 0;
    private int[] a = new int[2];
    private void button1_Click(object sender, EventArgs e)
    {
        int b;
        if(Int32.TryParse(textBox1.Text, out b))
        {
            a[i] = b;
            i++;
            textBox1.Text = "";
        }
        else
        {
            MessageBox.Show(@"Incorrect number");
        }

    }
    private void resultbutton2_Click(object sender, EventArgs e)
    {
        int sum = a[0] + a[1];
        MessageBox.Show("Sum: " + sum);
    }
}

您的代码包含两个错误:

  1. 您正在使用Int32 Convert.ToInt32(String),这是不好的,因为如果用户输入不能转换为Int32的东西,将抛出异常,您应该使用Boolean Int32.TryParse(String, out Int32)代替,并检查转换是否成功。

  2. 你在设置textbox1.Text = "";之后调用n2 = Convert.ToInt32(textbox1.Text);,这也是不好的,因为它不会等待用户输入,它会立即尝试将空字符串转换为整数,这将产生异常。

  3. 你不知道用户什么时候完成了他的数字插入,所以你必须依靠TextBox外部的东西来让你知道你应该执行加法。

尝试以下操作:

  • 放置TextBox .
  • 放置Button .
  • 初始化"grandTotal"整型变量为零
  • 当用户按下按钮时,解析TextBox的内容在一个临时的"submittedValue"整型变量中,然后将这个临时变量与你的"grandTotal"变量相加,并显示结果"grandTotal"变量值。

这样你就可以连续地对之前的总和进行加法运算。

全局变量

protected Int32 GrandTotal = 0;

Button点击事件处理程序:

Int32 currentValue = 0;
if (Int32.TryParse(userValue.Text, out currentValue))
{
    GrandTotal += currentValue;
    MessageBox.Show(String.Format("The new total is: {0}", GrandTotal));
}
else
{
    MessageBox.Show("Invalid value!");
}

我不知道你为什么这样做。

你仍然可以这样做声明n1, n2为int?在表单级别

然后在你的Add click事件中按这种方式执行

if (! n1.HasValue)
{
    n1 = int.Parse(textBox1.Text);                
}
n2 = int.Parse(textBox1.Text);
textBox1.Text = "";

如果你要为大量的数字做这个,那么使用List<int?> myIntList = new List<int?>(),你的add事件将是

myIntList.Add(int.Parse(textBox1.Text));
textBox1.Text = "";

,结果是int? result = myIntList.Sum();