C#言語で電卓を書く



ミミックオペレーティングコンピューティングシステムの添付ファイルがある、スタイル、デザイン基本的なメニュー項目設計する(ショートカットなどのキー、ホットキー、および分割ラインを

        

 

 

機能要件下図に示すようなファンクションキー実現します

 



ホットキーの設定方法は次のとおりです。

 

まず、フォームアイテムを使用して、図に示すようなフォームを作成します。

ドロップダウンメニュー項目を右クリックします

 

アイテムの編集をクリックしてホットキーを設定します

 

DropdownItemsコレクションをクリックします

ここにホットキーを設定します。

 

 

 

図のように、すべての設定が完了した後

 

 

次に、計算機フォームをクリックします

初期表示テキストボックスは空です。0〜9および小数点のオペランド監視追加します。

オペレーターのオペレーター監視を追加し、削除、バックスペース、および空のリスナーをそれぞれ追加します。

全体のコードは次のとおりです。

<span style="font-family:Comic Sans MS;font-size:14px;">using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        //保存用户所按的运算符
        private string s;
        //保存用户输入的运算数
        private double x, y;
        //运算符按钮对象
        private Button btn;
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            textBox1.Text = "";
        }
        private void buttond_Click(object sender, EventArgs e)
        {
            btn = (Button)sender;
            textBox1.Text += btn.Text;
        }
        private void buttonop_Click(object sender, EventArgs e)
        {
            btn = (Button)sender;
            if(btn.Name!="btn_Equal")
            {
                x = Convert.ToDouble(textBox1.Text);
                textBox1.Text = "";
                s = btn.Name;
                switch (s)
                {
                    case "btn_Recip":
                        textBox1.Text = "1/" + x.ToString() + "=" + (1/x).ToString();
                        break;
                    case "btn_Sqrt":
                        textBox1.Text = "√" + x.ToString() + "=" + Math.Sqrt(x).ToString();
                        break;
                }
            }
            else
            {
                y = Convert.ToDouble(textBox1.Text);
                switch(s)
                {
                    case"btn_Add":
                        textBox1.Text = x.ToString()+"+"+y.ToString()+"="+(x + y).ToString();
                        break;
                    case "btn_Sub":
                        textBox1.Text = x.ToString() + "-" + y.ToString() + "=" + (x - y).ToString();
                        break;
                    case "btn_Mul":
                        textBox1.Text = x.ToString() + "*" + y.ToString() + "=" + (x * y).ToString();
                        break;
                    case "btn_Div":
                        if (y == 0)
                        {
                            MessageBox.Show("除零错误!!!", "信息提示", MessageBoxButtons.OK);
                        }
                        else
                            textBox1.Text = x.ToString() + "/" + y.ToString() + "=" + (x / y).ToString();
                        break;
                    case "btn_Mod":
                        textBox1.Text = x.ToString() + "%" + y.ToString() + "=" + (x % y).ToString();
                        break;
                }
            }
        }
        private void changeSign(object sender, EventArgs e)        
        {            
            double storNum;             
            if (textBox1.Text.Length > 0)  
            {
                storNum = double.Parse(textBox1.Text);                 
                storNum *= -1;               
                textBox1.Text = storNum.ToString();           
            }            
            btn_Equal.Select();       
        }
        private void btnDeleteSign_Clicked(object sender, EventArgs e)
        {
             
        }
        private void btnDeleteAll_Clicked(object sender, EventArgs e)
        {
            textBox1.Text = "";
        }
        private void btnDelete1_Clicked(object sender, EventArgs e)
        {
            this.textBox1.Text = this.textBox1.Text.Substring(0, this.textBox1.Text.Length - 1);
            if(this.textBox1.Text=="")
            {
                this.textBox1.Text = "";
            }
        }
    }
}</span>

最終的な実行結果は次のとおりです。

 


おすすめ

転載: blog.csdn.net/dream_18/article/details/51713400