C#radiobutton按键事件
我已经做了一个简单的代码,将接受(输入键)选择的单选按钮。并检查radiobutton文本是否与答案匹配。但是这个代码太冗余了,有没有办法让它更简单C#radiobutton按键事件,c#,visual-studio,C#,Visual Studio,我已经做了一个简单的代码,将接受(输入键)选择的单选按钮。并检查radiobutton文本是否与答案匹配。但是这个代码太冗余了,有没有办法让它更简单 private void btn1_KeyDown(object sender, KeyEventArgs e) { var row = dTable.Rows[currentRow]; var ans = row["ANSWER"].ToString(); if (btn1.Text == ans) { s
private void btn1_KeyDown(object sender, KeyEventArgs e)
{
var row = dTable.Rows[currentRow];
var ans = row["ANSWER"].ToString();
if (btn1.Text == ans)
{
scoreAdd();
MessageBox.Show("Correct");
}
else
{
MessageBox.Show(ans);
}
currentRow++;
nextRow();
}
private void btn3_KeyDown(object sender, KeyEventArgs e)
{
var row = dTable.Rows[currentRow];
var ans = row["ANSWER"].ToString();
if (btn3.Text == ans)
{
scoreAdd();
MessageBox.Show("Correct");
}
else
{
MessageBox.Show(ans);
}
currentRow++;
nextRow();
}
private void btn4_KeyDown(object sender, KeyEventArgs e)
{
var row = dTable.Rows[currentRow];
var ans = row["ANSWER"].ToString();
if (btn4.Text == ans)
{
scoreAdd();
MessageBox.Show("Correct");
}
else
{
MessageBox.Show(ans);
}
currentRow++;
nextRow();
}
只需将发件人强制转换为按钮并从中获取文本
并将所有事件按钮绑定到按钮\u KeyDown
这样,您只有一种方法
只需将发件人强制转换为按钮并从中获取文本
并将所有事件按钮绑定到按钮\u KeyDown
这样,您只有一个方法。为逻辑创建一个通用方法,如:
protected void TheLogic(string txt)
{
var row = dTable.Rows[currentRow];
var ans = row["ANSWER"].ToString();
if (txt == ans)
{
scoreAdd();
MessageBox.Show("Correct");
}
else
{
MessageBox.Show(ans);
}
currentRow++;
nextRow();
}
然后使用相应的参数文本调用每个KeyDown
事件中的logic
函数,例如
private void btn3_KeyDown(object sender, KeyEventArgs e)
{
TheLogic(btn3.Text);
}
private void btn4_KeyDown(object sender, KeyEventArgs e)
{
TheLogic(btn4.Text);
}
为逻辑创建一个通用方法,如:
protected void TheLogic(string txt)
{
var row = dTable.Rows[currentRow];
var ans = row["ANSWER"].ToString();
if (txt == ans)
{
scoreAdd();
MessageBox.Show("Correct");
}
else
{
MessageBox.Show(ans);
}
currentRow++;
nextRow();
}
然后使用相应的参数文本调用每个KeyDown
事件中的logic
函数,例如
private void btn3_KeyDown(object sender, KeyEventArgs e)
{
TheLogic(btn3.Text);
}
private void btn4_KeyDown(object sender, KeyEventArgs e)
{
TheLogic(btn4.Text);
}
。您可以将
发送者
强制转换为按钮
(或您正在使用的任何控件类型)以获取其文本:((按钮)发送者)。文本
而不是btn4。文本
。在这一点上,代码的其余部分是相同的,因此可以对所有按钮使用单个处理程序。您可以将sender
强制转换为按钮(或您使用的任何控件类型),以获取其文本:((按钮)sender)。text
而不是btn4.text
。此时,代码的其余部分是相同的,因此可以对所有按钮使用单个处理程序。