数字键盘上的快捷键 [英] Shortcut keys from numeric keypad

查看:84
本文介绍了数字键盘上的快捷键的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想将访问密钥添加到一个小计算器应用程序中.当用户在数字键盘上选择0到9时,必须按下数字.

I would like to add access keys to a little calculator application. The numbers have to be pressed when the user selects 0 to 9 on the numeric keypad.

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

        private void btn1_Click(object sender, EventArgs e)
        {
            txtDisplay.Text += "1";
        }

        private void btn2_Click(object sender, EventArgs e)
        {
            txtDisplay.Text += "2";
        }

        private void btn3_Click(object sender, EventArgs e)
        {
            txtDisplay.Text += "3";
        }

        private void btn4_Click(object sender, EventArgs e)
        {
            txtDisplay.Text += "4";
        }

        private void btn5_Click(object sender, EventArgs e)
        {
            txtDisplay.Text += "5";
        }

        private void btn6_Click(object sender, EventArgs e)
        {
            txtDisplay.Text += "6";
        }

        private void btn7_Click(object sender, EventArgs e)
        {
            txtDisplay.Text += "7";
        }

        private void btn8_Click(object sender, EventArgs e)
        {
            if (digitsOnDisplay < Max_Digits_On_Display)
            {
                txtDisplay.Text += "8";
                digitsOnDisplay++;
            }
        }

        private void btn9_Click(object sender, EventArgs e)
        {
            if (digitsOnDisplay < Max_Digits_On_Display)
            {
                txtDisplay.Text += "9";
                digitsOnDisplay++;
            }
        }

        private void btn0_Click(object sender, EventArgs e)
        {
            if (digitsOnDisplay < Max_Digits_On_Display)
            {
                txtDisplay.Text += "0";
                digitsOnDisplay++;
            }
        }

        private void buttonDecimal_Click(object sender, EventArgs e)
        {
            if (digitsOnDisplay < Max_Digits_On_Display)
            {
                txtDisplay.Text += ".";
                digitsOnDisplay++;
            }
        }

        private void btnAdd_Click(object sender, EventArgs e)
        {
            if (number1 == 0) 
            {
                number1 = Convert.ToDouble(txtDisplay.Text);
                op = "+";
            }
            else 
            {
                number2 = Convert.ToDouble(txtDisplay.Text);
                op = "+";
            }
            txtDisplay.Text = "";
        }

        private void btnSubtract_Click(object sender, EventArgs e)
        {
             if (number1 == 0) 
            {
                number1 = Convert.ToDouble(txtDisplay.Text);
                op = "-";
            }
            else 
            {
                number2 = Convert.ToDouble(txtDisplay.Text);
                op = "-";
            }
             txtDisplay.Text = "";
        }

        private void btnMultiply_Click(object sender, EventArgs e)
        {
           if (number1 == 0) 
            {
                number1 = Convert.ToDouble(txtDisplay.Text);
                op = "*";
            }
            else 
            {
                number2 = Convert.ToDouble(txtDisplay.Text);
                op = "*";
            }
           txtDisplay.Text = "";
        }

        private void btnDivide_Click(object sender, EventArgs e)
        {
           if (number1 == 0) 
            {
                number1 = Convert.ToDouble(txtDisplay.Text);
                op = "/";
            }
            else 
            {
                number2 = Convert.ToDouble(txtDisplay.Text);
                op = "/";
            }
           txtDisplay.Text = "";
        }

        private void btnResult_Click(object sender, EventArgs e)
        {
            if (number1 == 0) 
                {
                    number1 = Convert.ToDouble(txtDisplay.Text);
                }
            else 
                {
                    number2 = Convert.ToDouble(txtDisplay.Text);
                }
            
            double _resultAsDouble;
            String _resultAsString;
            switch (op)
            {
                case "+":
                    {   
                        _resultAsDouble = number1 + number2;
                        _resultAsString = _resultAsDouble.ToString();
                        txtDisplay.Text = _resultAsString;
                        break;
                    }
                    
                case "-":
                    {
                    _resultAsDouble = number1 - number2;
                        _resultAsString = _resultAsDouble.ToString();
                        txtDisplay.Text = _resultAsString;
                        break;
                    } 
                case "*":
                    {
                    _resultAsDouble = number1 * number2;
                        _resultAsString = _resultAsDouble.ToString();
                        txtDisplay.Text = _resultAsString;
                        break;
                    }
                case "/":
                    { 
                    _resultAsDouble = number1 + number2;
                        _resultAsString = _resultAsDouble.ToString();
                        txtDisplay.Text = _resultAsString;
                        break;
                    }
            }
            number1 = 0;
            number2 = 0;
            op = "";
        }

        private double number1 = 0;
        private double number2 = 0;

        private short digitsOnDisplay = 0;
        private const short Max_Digits_On_Display = 15;
        private String op;

        private void btnClearAll_Click(object sender, EventArgs e)
        {
            txtDisplay.Text = "";
            number1 = 0;
            number2 = 0;
            op = "";
        }
    }
}

推荐答案

作为一种通用方法,可以使用以下代码:

As a generic way, you can use the below code:

this.btn1.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.btn1_KeyPress); 

private void btn1_KeyPress(object sender, KeyPressEventArgs e)        
{
   if(e.KeyChar()=='1')
   {
     //ur code
   }
}


这篇关于数字键盘上的快捷键的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆