<del id="d4fwx"><form id="d4fwx"></form></del>
      <del id="d4fwx"><form id="d4fwx"></form></del><del id="d4fwx"><form id="d4fwx"></form></del>

            <code id="d4fwx"><abbr id="d4fwx"></abbr></code>
          • WinForm實現(xiàn)的計算器小程序

            小練習(xí):使用winform做一個小型計算器實現(xiàn)基本功能。
                     
                  思路:首先要弄清楚的是計算器的實現(xiàn)原理,當(dāng)用戶按下計算器上的鍵計算器會做相應(yīng)的操作,同時在將反饋信息顯示在一個文本框中。對應(yīng)于程序中實際上是處理用戶點擊某個按鈕的事件,當(dāng)用戶點擊了某個按鍵之后,程序會做相應(yīng)的處理例:如果用戶點的是數(shù)字鍵,會直接在計算器上部的文本框中顯示出來,其他的就相應(yīng)做一個判斷,上部的文本框是結(jié)果的反饋。

            成都創(chuàng)新互聯(lián)是創(chuàng)新、創(chuàng)意、研發(fā)型一體的綜合型網(wǎng)站建設(shè)公司,自成立以來公司不斷探索創(chuàng)新,始終堅持為客戶提供滿意周到的服務(wù),在本地打下了良好的口碑,在過去的十余年時間我們累計服務(wù)了上千家以及全國政企客戶,如成都辦公窗簾等企業(yè)單位,完善的項目管理流程,嚴(yán)格把控項目進(jìn)度與質(zhì)量監(jiān)控加上過硬的技術(shù)實力獲得客戶的一致稱贊。

                    注:在處理事件時為了減少程序代碼量,沒必要單獨為每個button處理其點擊事件,例如當(dāng)用戶按下1-9的數(shù)字時,在計算器上部的textbox中就會顯示用戶輸入的數(shù)字,可以將這幾個button事件放在一起處理,減少代碼量,具體實現(xiàn)如下:

            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 WindowsFormsApplication1
            {
                public partial class Form1 : Form
                {
                    public Form1()
                    {
                        InitializeComponent();
                    }

                    private void Form1_Load(object sender, EventArgs e)
                    {
                        //處理用戶點擊數(shù)字鍵的事件
                        button2.Click += new EventHandler(Button_Click);//將 button2.Click關(guān)聯(lián)到自定義方法Button_Click
                        button3.Click += Button_Click;//將button3.Click關(guān)聯(lián)到Button_Click方法
                        button4.Click += Button_Click;
                        button5.Click += Button_Click;
                        button6.Click += Button_Click;
                        button7.Click += Button_Click;
                        button8.Click += Button_Click;
                        button9.Click += Button_Click;
                        button10.Click += Button_Click;
                        button11.Click += Button_Click;
                       

                        //處理用戶點擊運算符的事件           

                        button1.Click += Operator_Click;//將button1.Click事件關(guān)聯(lián)到Operator_Click方法
                        button14.Click += Operator_Click;
                        button15.Click += Operator_Click;
                        button16.Click += Operator_Click;
                       
                    }
                    bool mark = true;//定義一個mark用來判斷什么時候可以可以輸入運算符,比如用戶已經(jīng)輸了一個運算符,就不能再輸了
                    ///


                    ///自定義的一個方法,當(dāng)用戶點擊了數(shù)字鍵或運算符時將關(guān)聯(lián)到這個方法,將當(dāng)前button的文本屬性獲取顯示在textbox中
                    ///
                    /// 接收關(guān)聯(lián)來的對象
                    ///
                    private void Button_Click(object sender, EventArgs e)
                    {
                        if (textBox1.Text == "0")//如果原來的文本框是0,就將按的button的文本值賦給textBox1.Text
                        {
                           textBox1.Text = (sender as Button).Text;
                           return;//跳出整個Button_Click方法
                        }

                        if (!equalmark)//已經(jīng)做了結(jié)果了運算了,這時就清空原來的文本框,等待輸入一個數(shù),否則新輸入的數(shù)就會直接拼接在結(jié)果后               //面
                        {
                            textBox1.Clear();//清空文本框
                        }
                        equalmark = true;//表示可以繼續(xù)拼接數(shù)字了

                        if (!string.IsNullOrEmpty(operators) && mark)//!string.IsNullOrEmpty(operators)判斷如果operators不為空,即用戶已經(jīng)點擊過運算符,并且文本框中也有值,表示用戶已經(jīng)輸入了第一個操作數(shù),并且mark為true,這是就清空文本框,然后將mark置為false可以無限制輸入而不是只能輸一位,這里的mark就是這個作用
                        {
                            textBox1.Clear();//清空文本框
                            mark = false;//將mark置為false,表示可以繼續(xù)點擊運算符
                        }
                       textBox1.Text += (sender as Button).Text;
                    }
                    ///


                    /// 定義一個方法,處理如果點的是運算符所需要做的操作,處理運算符,如果用戶輸入的是運算符,就清空文本框中
                    /// 的內(nèi)容,但是在清空之前要保存原來文本框中的內(nèi)容,為后來做運算用;同時將獲得的運算符賦給textBox1.Text,
                    /// 同樣清空,因為計算器中運算符是沒有顯示出來的
                    ///
                    ///
                    ///
                    string str;//定義一個string類型的變量str,獲取用戶點的數(shù)字
                    string operators;//定義一個string類型的變量operators,獲取用戶點的運算符
                    private void Operator_Click(object sender, EventArgs e)
                    {
                        str = textBox1.Text;//獲取用戶輸入的數(shù)字賦值給str
                        operators = (sender as Button).Text;
                    }
                    ///
                    /// 用戶按了=之后觸發(fā)的事件,根據(jù)用戶輸入計算值

                    ///
                    /// 當(dāng)前對象
                    ///
                    bool equalmark = true;//定義一個bool類型的equalmark表示用戶
                    private void button13_Click(object sender, EventArgs e)
                    {
                        switch (operators)
                        {
                            case "+"://如果用戶按的是+號,處理加法
                                textBox1.Text =(double.Parse ( str) + double.Parse (textBox1.Text)).ToString ();//textBox1.Text原來存放的是第二次用戶輸入的數(shù)字加上原來保存的str最后賦值給textBox1.Text,作為最后的顯示,這里注意賦值不是拼接
                                break;
                            case "-":
                                textBox1.Text = (double.Parse(textBox1.Text)-double.Parse(str) ).ToString();
                                break;
                            case "*":
                                textBox1.Text = (double.Parse(str) * double.Parse(textBox1.Text)).ToString();
                                break;
                            case "/":
                                textBox1.Text = (double.Parse(textBox1.Text)/double.Parse(str)).ToString();
                                break;
                        }
                        //運算完成
                        operators = "";//將保存運算符的字段置為空
                        mark = true;//mark置為true表示當(dāng)已經(jīng)點過運算符之后可以繼續(xù)輸入多位數(shù)字
                        equalmark = false;//equalmark用來實現(xiàn)在輸出的結(jié)果后面不能繼續(xù)累加數(shù)字的作用
                    }
                    ///


                    /// 處理用戶按了小數(shù)點之后的事件
                    ///
                    ///
                    ///
                    private void button12_Click(object sender, EventArgs e)
                    {
                        if (!textBox1.Text.Contains('.'))
                        {
                            if (textBox1.Text == "")//如果原來的文本框包含.并且原來為空,就將里面的文本變?yōu)?.
                            {
                                textBox1.Text += "0.";
                            }
                            else
                            {
                                textBox1.Text += ".";//如果原來的文本框不為0,并且不包含.,就把.添加進(jìn)去
                            }
                        }
                      
                    }
                }
            }

            標(biāo)題名稱:WinForm實現(xiàn)的計算器小程序
            轉(zhuǎn)載來于:http://www.jbt999.com/article22/ihpijc.html

            成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣、動態(tài)網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)、電子商務(wù)、定制開發(fā)、網(wǎng)站收錄

            廣告

            聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:[email protected]。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

            h5響應(yīng)式網(wǎng)站建設(shè)

              <del id="d4fwx"><form id="d4fwx"></form></del>
              <del id="d4fwx"><form id="d4fwx"></form></del><del id="d4fwx"><form id="d4fwx"></form></del>

                    <code id="d4fwx"><abbr id="d4fwx"></abbr></code>
                  • 中文字幕在线不卡 | 动漫黄色视频网站 | 清纯唯美亚洲第一页麻豆豆花 | 天天草天天干 | 做爱网站免费猛烈 |