用c#做一个计算器(和电脑中的一样)

水平零点 2012-10-19 06:24:13
麻烦哪个高手帮下忙?
1.怎样做到只用鼠标选择数字输入
1.怎样获取值(每个button的值仅为一个数字)并且显示在文本框中
...全文
2551 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
allen0118 2012-10-22
  • 打赏
  • 举报
回复
我写过一个工厂模式的计算器,需要的话发个邮件给我我发给你,

allen0717@163.com
lc_ant 2012-10-21
  • 打赏
  • 举报
回复
连接字符串挺好的
青红脸 2012-10-21
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

每次点击都让上次的值*10+本次的值就ok啦
[/Quote]
+1
水平零点 2012-10-21
  • 打赏
  • 举报
回复
行我试试谢谢你的帮
nada123456789 2012-10-21
  • 打赏
  • 举报
回复
显示的值用string,点按钮用拼字符串把数字拼起来就好了,等要运算的时候再把textbox中的值去出来转换成数字来进行计算。计算器真不难。。稍有基础就能大概做出来,但是代码要写的很好还是有一定难度的。
xiedingan 2012-10-20
  • 打赏
  • 举报
回复
几个月前随手写的,没什么技术含量,主要是及时清缓存
xiedingan 2012-10-20
  • 打赏
  • 举报
回复
这个你看行不?
using System;
using System.Windows.Forms;
using System.Drawing;


namespace 简易计算器
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

//----------------------------------------------------------------------------//

public void InputNumber(string number1)
{
if (textBox1.Text == "0")
{
textBox1.Text = "";
}

textBox1.Text = textBox1.Text + number1;
/*Console.Beep(500, 100);*/

}

private void btndot_Click(object sender, EventArgs e)
{
if(textBox1.Text.IndexOf(".") == -1)//-1 ==不包含
{
InputNumber(".");
}
}

private void btn0_Click(object sender, EventArgs e)
{
InputNumber("0");
}

private void btn1_Click(object sender, EventArgs e)
{
InputNumber("1");
}

private void btn2_Click(object sender, EventArgs e)
{
InputNumber("2");
}

private void btn3_Click(object sender, EventArgs e)
{
InputNumber("3");
}

private void btn4_Click(object sender, EventArgs e)
{
InputNumber("4");
}

private void btn5_Click(object sender, EventArgs e)
{
InputNumber("5");
}

private void btn6_Click(object sender, EventArgs e)
{
InputNumber("6");
}

private void btn7_Click(object sender, EventArgs e)
{
InputNumber("7");
}

private void btn8_Click(object sender, EventArgs e)
{
InputNumber("8");
}

private void btn9_Click(object sender, EventArgs e)
{
InputNumber("9");
}

//----------------------------------------------------------------------------//

public static string numbersaved;//被运算数
public static string signsaved;//运算符

public void SaveInputed(string num1, string sign1)//按下运算符则保存算式
{
if (num1 == "0" | num1 == "") return;

numbersaved = num1;
signsaved = sign1;
textBox1.Text = "0";
/*Console.Beep(500, 100);*/
}

private void btnjia_Click(object sender, EventArgs e)//加减乘除
{
SaveInputed(textBox1.Text,"加");
}

private void btnjian_Click(object sender, EventArgs e)
{
SaveInputed(textBox1.Text, "减");
}

private void btnchen_Click(object sender, EventArgs e)
{
SaveInputed(textBox1.Text, "乘");
}

private void btnchu_Click(object sender, EventArgs e)
{
SaveInputed(textBox1.Text, "除");
}

//----------------------------------------------------------------------------//


private void btndeng_Click(object sender, EventArgs e)
{
string numbernow=textBox1.Text;

if (signsaved == "" | numbersaved == "" | numbernow == "" | numbernow == "0") return;

textBox1.Text= Calcuration(numbersaved,signsaved,numbernow);
listBox1.Items.Add(numbersaved + signsaved + numbernow + "等于" + textBox1.Text);
listBox1.SelectedIndex = listBox1.Items.Count - 1;
signsaved = "";
numbersaved = "";
/*Console.Beep(500, 100);*/
}

public string Calcuration(string num1, string sign1, string num2)
{
float number1, number2, sum1 = 0;

try
{
number1 = (float)(Double.Parse(num1));
number2 = (float)(Double.Parse(num2));

if (sign1 == "加")
{
sum1 = number1 + number2;
}

if (sign1 == "减")
{
sum1 = number1 - number2;
}

if (sign1 == "乘")
{
sum1 = number1 * number2;
}

if (sign1 == "除")
{
sum1 = number1 / number2;
}
return sum1.ToString();
}
catch
{
return "";
}
}

//----------------------------------------------------------------------------//

private void btnclear_Click(object sender, EventArgs e)//全部清零(计算器全部归零)
{
textBox1.Text = "0";
numbersaved = "";
signsaved= "";
/*Console.Beep(500, 100);*/
}

//----------------------------------------------------------------------------//

}
}
  • 打赏
  • 举报
回复
计算器虽然简单,但是很考验能力,忽然想跟着楼主试试,帮顶
jiowei 2012-10-19
  • 打赏
  • 举报
回复
界面搭配好。每个button设置text属性为所代表的数字,点击鼠标事件将button的text添加到屏幕显示的Textbox控件中,当点击运算符的时候,把TextBox的文本取出来放在一个全局变量里,以此类推。。
将鼠标点击事件绑定到屏幕输出里,效率会高点。
dalmeeme 2012-10-19
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

谢谢啊,我能在问一个问题吗?
就是像计算机自带的计算器一样,一个数可能是一位数获者更多位。
那我怎样将0至9这十个按钮上的值任意组合的数组合在一起呢?
[/Quote]每次点击都重新给文本框赋值,然后把文本框的值转换成实数。
lhx527099095 2012-10-19
  • 打赏
  • 举报
回复
每次点击都让上次的值*10+本次的值就ok啦
水平零点 2012-10-19
  • 打赏
  • 举报
回复
谢谢啊,我能在问一个问题吗?
就是像计算机自带的计算器一样,一个数可能是一位数获者更多位。
那我怎样将0至9这十个按钮上的值任意组合的数组合在一起呢?
bdmh 2012-10-19
  • 打赏
  • 举报
回复
textbox的readonly设置为true,只读,不能输入,但可以通过Text赋值
或者设置enable=false

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧