按下第二个键时,我失去了调用功能。我已经为我的按钮使用了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();
}
答案 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
告诉我,如果我误解了什么,你需要进一步的帮助,否则我的解决方案对你不起作用。