Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Can';不要在文本框中输入多个数字。在我的简单计算器程序中_C# - Fatal编程技术网

C# Can';不要在文本框中输入多个数字。在我的简单计算器程序中

C# Can';不要在文本框中输入多个数字。在我的简单计算器程序中,c#,C#,需要帮助制作一个简单的计算器。我不能在计算器的文本框中输入多个数字。每次我输入第二个数字,它就会取代第一个,需要帮助 我不能在计算器的文本框中超过一个输入数字,而是用第二个输入数字替换第一个数字 namespace Calculator_Project { public partial class Form1 : Form { public Form1() { InitializeComponent();

需要帮助制作一个简单的计算器。我不能在计算器的文本框中输入多个数字。每次我输入第二个数字,它就会取代第一个,需要帮助

我不能在计算器的文本框中超过一个输入数字,而是用第二个输入数字替换第一个数字

namespace Calculator_Project
{
    public partial class Form1 : Form
    {

        public Form1()
        {
            InitializeComponent();
        }

        private void InputOutputArea_TextChanged(object sender, EventArgs e)
        {

        }

        private void One_Click(object sender, EventArgs e)
        {
            int Input = 1;
            InputOutputArea.Text = Input.ToString();
        }

        private void Two_Click(object sender, EventArgs e)
        {
            int Input = 2;
            InputOutputArea.Text = Input.ToString();
        }

        private void Three_Click(object sender, EventArgs e)
        {

        }

        private void Four_Click(object sender, EventArgs e)
        {

        }

        private void Five_Click(object sender, EventArgs e)
        {

        }

        private void Six_Click(object sender, EventArgs e)
        {

        }

        private void Seven_Click(object sender, EventArgs e)
        {

        }

        private void Eight_Click(object sender, EventArgs e)
        {

        }

        private void Nine_Click(object sender, EventArgs e)
        {

        }

        private void Eql_Click(object sender, EventArgs e)
        {

        }

        private void AddB_Click(object sender, EventArgs e)
        {

        }

        private void Minus_Click(object sender, EventArgs e)
        {

        }

        private void MultiplyB_Click(object sender, EventArgs e)
        {

        }

        private void DivideB_Click(object sender, EventArgs e)
        {

        }

        private void Zero_Click(object sender, EventArgs e)
        {

        }

        private void ResetB_Click(object sender, EventArgs e)
        {
            InputOutputArea.Clear();
        }
    }
}
你应该使用
InputOutputArea.Text+=Input.ToString()
(注意“+”)以便附加到文本框

   private void Two_Click(object sender, EventArgs e)
    {
        int Input = 2;
        InputOutputArea.Text += Input.ToString();
    }
您必须使用+=将其他文本添加到第一个文本的下一个文本中

这是您的问题:

InputOutputArea.Text = Input.ToString();
这将替换文本框的内容,而不是添加到文本框中

InputOutputArea.Text += Input.ToString();
上面的代码应该按照您的要求执行


要记住的是,将字符串与
+
连接起来效率很低,所以除非绝对必要,否则不要在性能关键的代码中这样做。在这种情况下,字符串生成器几乎总是更好的。

每一个答案都在谈论前一个文本与当前文本的连接,但我想提出一些更重要的建议

您不需要为执行相同任务的所有按钮创建单独的事件处理程序,希望每个按钮的文本都是您需要在文本框中显示的数字(例如,
btnOne
将保持
1
btnTwo
保持
2
等等)。通过使用此文本,我们可以重复使用如下处理程序,让
btnNumber\u Click
作为处理程序,其定义如下:

private void btnNumber_Click(object sender, EventArgs e)
{
    Button currentButton = sender as Button;
    InputOutputArea.Text += currentButton.Text;
}

使用
InputOutputArea.Text+=
而不是
InputOutputArea.Text=
添加文本,而不是替换文本。是的,这是因为每次单击时都会覆盖文本框的值-相反,您可以编写“InputOutputArea.Text=String.Format({0}{1}),InputOutputArea.Text,Input.ToString()”非常感谢brosHope,这一行是一个负担过重的
int Input=2
,声明为
int
以后根本不用,再次转换为字符串,那么为什么不干脆
InputOutputArea.Text+=“2”@un lucky是的,这将是对代码的改进。更有效的编码方法是,对所有数字按钮使用共享事件处理程序,并简单地将发送者按钮的标签(在计算器中可能是有问题的数字)附加到InputOutputArea文本属性
,声明为
int
以后根本不用,再次转换为字符串,那么为什么不干脆
InputOutputArea.Text+=“2”