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



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

这是针对我的单选按钮 1 键按下事件

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
    }

这是我的下一个输入函数

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

我通过在输入键操作期间让表单增加变量来解决此问题。

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

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

为了证明我在评论中的意思:

您可以从btn1_KeyDown传递KeyEventArgsKeyCode属性

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

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

如果我误解了什么,请告诉我,您需要进一步的帮助,或者我的解决方案不适合您。

相关内容

  • 没有找到相关文章

最新更新