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”代码>