Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用我创建的计算器应用程序绑定键盘数字?_C#_Winforms - Fatal编程技术网

C# 如何使用我创建的计算器应用程序绑定键盘数字?

C# 如何使用我创建的计算器应用程序绑定键盘数字?,c#,winforms,C#,Winforms,嗨,我已经创建了一个窗口计算器,它工作得很好,但是,我想能够使用我的键盘数字以及我的计算器应用程序。我该怎么办?这是我的密码 public partial class Form1 : Form { Double resultValue = 0; String operationPerformed = ""; bool isOperationPerformed = false; public Form1() { Initi

嗨,我已经创建了一个窗口计算器,它工作得很好,但是,我想能够使用我的键盘数字以及我的计算器应用程序。我该怎么办?这是我的密码

public partial class Form1 : Form
{
    Double resultValue = 0;
    String operationPerformed = "";
    bool isOperationPerformed = false;
    public Form1()
    {
        InitializeComponent();
    }

    private void button_click(object sender, EventArgs e)
    {
        if ((textBox_Result.Text == "0") || (isOperationPerformed))
            textBox_Result.Clear();


        isOperationPerformed = false;
        Button button = (Button)sender;

        if (button.Text == ".")
        {
            if (!textBox_Result.Text.Contains("."))
                textBox_Result.Text = textBox_Result.Text + button.Text;
        } else

        textBox_Result.Text = textBox_Result.Text + button.Text;
    }

    private void operator_click(object sender, EventArgs e)
    {
        Button button = (Button)sender;
        if (resultValue != 0)
        {
            EqualsToBtn.PerformClick();
            operationPerformed = button.Text;
            labelCurrentOperation.Text = resultValue + " " + operationPerformed;
            isOperationPerformed = true;
        }else
        {


        operationPerformed = button.Text;
        resultValue = Double.Parse(textBox_Result.Text);
        labelCurrentOperation.Text = resultValue + " " + operationPerformed;
        isOperationPerformed = true;

        }

    }

    private void RefreshBtn_Click(object sender, EventArgs e)
    {
        textBox_Result.Text = "0";
    }

    private void CancelBtn_Click_1(object sender, EventArgs e)
    {
        textBox_Result.Text = "0";
        resultValue = 0;
    }

    private void EqualsToBtn_Click_1(object sender, EventArgs e)
    {
        switch (operationPerformed)
        {
            case "+":
                textBox_Result.Text = (resultValue + Double.Parse(textBox_Result.Text)).ToString();
                break;
            case "-":
                textBox_Result.Text = (resultValue - Double.Parse(textBox_Result.Text)).ToString();
                break;
            case "*":
                textBox_Result.Text = (resultValue * Double.Parse(textBox_Result.Text)).ToString();
                break;
            case "/":
                textBox_Result.Text = (resultValue / Double.Parse(textBox_Result.Text)).ToString();
                break;
        }
        resultValue = Double.Parse(textBox_Result.Text);
        labelCurrentOperation.Text = "";
     }
   }
}  
你可以使用


您可以通过订阅
KeyDown
事件来实现它

首先,需要将
KeyPreview
设置为
true

public Form1()
{
    InitializeComponent();
    KeyPreview = true;
}
然后使用
开关
判断按下了哪个键

public Form1()
{
    InitializeComponent();
    KeyPreview = true;
}
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
    switch (e.KeyCode)
    {
        case Keys.NumPad0:
        case Keys.D0:
            // Zero
            buttonnum0.PerformClick(); // simulate pressing buttonnum0
            break;
        case Keys.NumPad1:
        case Keys.D1:
            // One
            buttonnum1.PerformClick();
            break;
        // ... etc
        case Keys.Oemplus:
        case Keys.Add:
            // Plus
            buttonplus.PerformClick();
            break;
        default:               
            return;
    }
    e.Handled = true;
}