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 WindowsFormsApplication5
{
    public partial class Form1 : Form
    {
        double num1, num2, result;
        bool decimalFlag=false;
        string myOperator;        public Form1()
        {
            InitializeComponent();
        }        private void textReadout_TextChanged(object sender, EventArgs e)
        {
            textReadout.Text = "0.";
            textReadout.TextAlign = HorizontalAlignment.Right;
        }
                
        public void NumClick(int myNumber)
        {
            if (decimalFlag)
            {
                textReadout.Text = textReadout.Text + myNumber;
            }
            else
            {
                if (textReadout.Text == "0.")
                {
                    textReadout.Text = myNumber + ".";                }
                else
                {
                    textReadout.Text = textReadout.Text.Substring
                        (0, textReadout.Text.Length + 1) + myNumber + ".";
                }
            }
        }       
        
        private void button10_Click(object sender, EventArgs e)
        {
            NumClick(0);
        }        private void button3_Click(object sender, EventArgs e)
        {
            NumClick(1);
        }        private void button8_Click(object sender, EventArgs e)
        {
            NumClick(2);
        }        private void button9_Click(object sender, EventArgs e)
        {
            NumClick(3);
        }        private void button2_Click(object sender, EventArgs e)
        {
            NumClick(4);
        }        private void button6_Click(object sender, EventArgs e)
        {
            NumClick(5);
        }        private void button7_Click(object sender, EventArgs e)
        {
            NumClick(6);
        }        private void button1_Click(object sender, EventArgs e)
        {
            NumClick(7);
        }        private void button4_Click(object sender, EventArgs e)
        {
            NumClick(8);
        }        private void button5_Click(object sender, EventArgs e)
        {
            NumClick(9);
        }
        
        private void button11_Click(object sender, EventArgs e)
        {
            decimalFlag = true;
        }        private void but_C_Click(object sender, EventArgs e)
        {
            num1 = 0;
            num2 = 0;
            textReadout.Text="0.";
            decimalFlag=false;        
        }        private void buttonAdd_Click(object sender, EventArgs e)
        {
            myOperator = "add";
            num1 = double.Parse(textReadout.Text);
            textReadout.Text = "0.";
            decimalFlag = false;
        }        private void buttonSub_Click(object sender, EventArgs e)
        {
            myOperator = "Sub";
            num1 = double.Parse(textReadout.Text);
            textReadout.Text = "0.";
            decimalFlag = false;
        }        private void buttonMul_Click(object sender, EventArgs e)
        {
            myOperator = "Mul";
            num1 = double.Parse(textReadout.Text);
            textReadout.Text = "0.";
            decimalFlag = false;
        }        private void buttonDiv_Click(object sender, EventArgs e)
        {
            myOperator = "Div";
            num1 = double.Parse(textReadout.Text);
            textReadout.Text = "0.";
            decimalFlag = false;
        }        private void button12_Click(object sender, EventArgs e)
        {
            num2 = double.Parse(textReadout.Text);
            switch (myOperator)
            {
                case"add":
                    result = num1 + num2;
                    textReadout.Text = result.ToString();
                    break;
                case "Sub":
                    result = num1 - num2;
                    textReadout.Text = result.ToString();
                    break;
                case "Mul":
                    result = num1 * num2;
                    textReadout.Text = result.ToString();
                    break;
                case "Div":
                    if (num2 == 0)
                    {
                        textReadout.Text = "除数不能为“0”!";
                    }
                    else
                    {
                        result = num1 / num2;
                        textReadout.Text = result.ToString();
                    }
                    break;
            }
        }     }
}C#

解决方案 »

  1.   

    可运行 点数字键 会报错
    另外 不理解 对小数点的解释
    text初始界面 为空,如何让他为“0.”
      

  2.   

    1.这个方法NumClick(int i)怎么写的?
    2.http://wenku.baidu.com/view/a40234db50e2524de5187e1b.html
    3.FormLoad事件设置text.text=0
      

  3.   

     public void NumClick(int myNumber)
            {
                if (decimalFlag)
                {
                    textReadout.Text = textReadout.Text + myNumber;
                }
                else
                {
                    if (textReadout.Text == "0.")
                    {
                        textReadout.Text = myNumber + ".";                }
                    else
                    {
                        textReadout.Text = textReadout.Text.Substring
                            (0, textReadout.Text.Length + 1) + myNumber + ".";
                    }
                }
            }       
    我copy的 不太能看懂 辛苦了 我初学
      

  4.   

            private void textReadout_TextChanged(object sender, EventArgs e)
            {
                //textReadout.Text = "0.";
                textReadout.TextAlign = HorizontalAlignment.Right;
            }        public void NumClick(int myNumber)
            {
                if (decimalFlag)
                {
                    textReadout.Text = textReadout.Text + myNumber;
                }
                else
                {
                    if (textReadout.Text == "0.")
                    {
                        textReadout.Text = myNumber + ".";                }
                    else
                    {
                        //textReadout.Text = textReadout.Text.Substring(0, textReadout.Text.Length + 1) + myNumber + ".";
                        textReadout.Text = textReadout.Text.Substring(0, textReadout.Text.Length - 1) + myNumber + ".";
                    }
                }
            }
      

  5.   

      = =代码好多~ 
     //把0-9的数字按钮绑到一个方法上面~
             private void buttonNum_Click(object sender, EventArgs e)
             {
                 var num = int.Parse((sender as Button).Text);
                 NumClick(num);
             }把计算方法单独的封装一个出来 给予参与指定运算~
      

  6.   

            private void textReadout_TextChanged(object sender, EventArgs e)
            {
                //textReadout.Text = "0.";
                textReadout.TextAlign = HorizontalAlignment.Right;
            }当textReadout控件的text值发生改变时引发的事件,所以必须注释那一行,否则textReadout.Text永远显示“0.”textReadout.Text = textReadout.Text.Substring(0, textReadout.Text.Length - 1) + myNumber + ".";中Substring(0, textReadout.Text.Length + 1)方法是获取字符串中比字符串长度少一个字符的字符串,例如“12.”则得到“12”;
      

  7.   

          private void textReadout_TextChanged(object sender, EventArgs e)
            {
                //textReadout.Text = "0.";
                textReadout.TextAlign = HorizontalAlignment.Right;
            }当textReadout控件的text值发生改变时引发的事件,所以必须注释那一行,否则textReadout.Text永远显示“0.”textReadout.Text = textReadout.Text.Substring(0, textReadout.Text.Length - 1) + myNumber + ".";中Substring(0, textReadout.Text.Length + 1)方法是获取字符串中比字符串长度少一个字符的字符串,例如“12.”则得到“12”;
      

  8.   


    谢谢你,问题基本解决了,可是我想让text起始显示“0.”,怎么办呢?
      

  9.   


    谢谢你,问题基本解决了,可是我想让text起始显示“0.”,怎么办呢?
    直接将textReadout控件的Text属性改为“0.”就行了