当按下第二个键时,我失去了调用函数。我已经为我的按钮使用了 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
传递KeyEventArgs
的KeyCode
属性
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 ();
}
如果我误解了什么,请告诉我,您需要进一步的帮助,或者我的解决方案不适合您。