C#按下第二个键时调用一个函数

时间:2017-10-14 14:22:43

标签: c# visual-studio function event-handling

按下第二个键时,我失去了调用功能。我已经为我的按钮使用了KeyDown事件。并且KeyDown将调用一个将检查该按钮的函数。我的问题是在检查该按钮后,用户必须按另一个Enter键或空格键继续下一个数据。

这是我的radiobutton1 KeyDown事件

private void btn1_KeyDown(object sender, KeyEventArgs e)
    {
        btn1.BackColor = Color.Blue;
        checkAns(btn1.Text, btn1);
    }

这是我的checkAns函数,它将检查所选按钮

private void checkAns (string ansText, RadioButton rdo)
    {
        var row = dTable.Rows[currentRow];
        var ans = row["ANSWER"].ToString();
        if (ansText == ans)
        {
            rdo.BackColor = Color.Green;
            correctAdd();
            //MessageBox.Show("Correct");
        }
        else
        {
            rdo.BackColor = Color.Red;
            wrongAdd();
            //MessageBox.Show("Wrong. Answer is" + " \n " + ans);
        }
        nextEnter (------); //Here I'm not sure how to call the another keydown/keypress event or value of the enter key
    }

这是我的nextEnter功能

private void nextEnter(------) //Also at this part.
    {
        if (------ == Keys.Enter) //And here.
        currentRow++;
        currentNo++;
        remain--;
        nextRow();
    }

2 个答案:

答案 0 :(得分:0)

我通过在输入keydown事件期间使表单增加一个变量来解决这个问题。

private void frmTest_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.Enter || e.KeyCode == Keys.Space)
        {
            entCount++;
        }
    }

并在entCount == 2时使用if语句,显示下一个数据并将entCount重置为0.

答案 1 :(得分:0)

在我的评论中展示我的意思:

您可以从KeyCode

传递KeyEventArgs的{​​{1}}属性
btn1_KeyDown

private void btn1_KeyDown (object sender, KeyEventArgs e) { btn1.BackColor = Color.Blue; checkAns (btn1.Text, btn1, e.KeyCode); }

checkAns

继续private void checkAns (string ansText, RadioButton rdo, Keys pressedKey) { var row = dTable.Rows [currentRow]; var ans = row ["ANSWER"].ToString (); if (ansText == ans) { rdo.BackColor = Color.Green; correctAdd (); //MessageBox.Show("Correct"); } else { rdo.BackColor = Color.Red; wrongAdd (); //MessageBox.Show("Wrong. Answer is" + " \n " + ans); } nextEnter (pressedKey); //Here I'm not sure how to call the another keydown/keypress event or value of the enter key }

nextEnter

告诉我,如果我误解了什么,你需要进一步的帮助,否则我的解决方案对你不起作用。