【发布时间】:2012-02-12 00:44:44
【问题描述】:
我正在使用 Windows 窗体应用程序制作计算器,但目前我很困惑。 到目前为止,这是我的应用程序,它只能做加法,但可以做任意数量的数字。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Calculator
{
public partial class Form1 : Form
{
int num;
int answer = 0;
int i;
public Form1()
{
InitializeComponent();
}
private void plusButton_Click(object sender, EventArgs e)
{
answer += System.Convert.ToInt32(textBox1.Text);
ClearTextbox();
}
private void minusButton_Click(object sender, EventArgs e)
{
//answer -= System.Convert.ToInt32(textBox1.Text);
//ClearTextbox();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void divideButton_Click(object sender, EventArgs e)
{
}
private void multiplyButton_Click(object sender, EventArgs e)
{
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
num = 1;
displayInt(num);
}
private void button2_Click(object sender, EventArgs e)
{
num = 2;
displayInt(num);
}
private void button3_Click(object sender, EventArgs e)
{
num = 3;
displayInt(num);
}
private void button4_Click(object sender, EventArgs e)
{
num = 4;
displayInt(num);
}
private void button5_Click(object sender, EventArgs e)
{
num = 5;
displayInt(num);
}
private void button6_Click(object sender, EventArgs e)
{
num = 6;
displayInt(num);
}
private void button7_Click(object sender, EventArgs e)
{
num = 7;
displayInt(num);
}
private void button8_Click(object sender, EventArgs e)
{
num = 8;
displayInt(num);
}
private void button9_Click(object sender, EventArgs e)
{
num = 9;
displayInt(num);
}
private void button0_Click(object sender, EventArgs e)
{
num = 0;
displayInt(num);
}
private void resetButton_Click(object sender, EventArgs e)
{
ClearTextbox();
num = 0;
answer = 0;
}
public void displayInt(int num)
{
textBox1.Text = textBox1.Text + num.ToString();
}
public void ClearTextbox()
{
textBox1.Clear();
}
public void DisplayAnswer(int answer)
{
answer += System.Convert.ToInt32(textBox1.Text); //Answer = Answer + Textbox Stuff
textBox1.Clear();
textBox1.Text = answer.ToString();
}
private void equalsButton_Click(object sender, EventArgs e)
{
DisplayAnswer(answer);
num = 0;
answer = 0;
}
}
}
我不确定是否有办法等到按下另一个数字键,然后执行 x + y。我听说过事件处理程序,但对我来说这是一个相当模糊的话题。
这是一张图片:http://img196.imageshack.us/img196/4127/12464e13e5154a949a9a457.png
*我希望它能够对超过 2 个数字进行运算。
谢谢!
【问题讨论】:
-
所有 button_Click 例程都是事件处理程序!
-
我可能会建议首先使事件处理程序与计算器按钮编号保持一致。 button_1click 处理的 7 按钮是通往精神错乱之路的必经之路。 ;)
-
@M.Babcock:恕我直言,一个简单的计算器是学习某些编程概念(如简单 UI、事件驱动编程、开始 OOP 等)的绝佳练习。如果您在这些复杂性方面有更多富有想象力的想法,请分享。
-
@PaulSasik- 我同意它为新程序员提供了好处。问题是它没有启发(这就是为什么我问它是否是家庭作业)。也许学习编程不再像我自学编程时那样涉及灵感或(通常是错误的)创新的快感。
-
@ArumugaWalters - 知道你的界限值得+1。我们中的许多人都没有为您做的一件事就是让 SO 可以帮助您度过难关。我已经这样做了大约 20 年(计算非专业经验),我知道我刚开始时没有这样的经历。
标签: c# methods calculator