Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#radiobutton按键事件_C#_Visual Studio - Fatal编程技术网

C#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

我已经做了一个简单的代码,将接受(输入键)选择的单选按钮。并检查radiobutton文本是否与答案匹配。但是这个代码太冗余了,有没有办法让它更简单

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
。此时,代码的其余部分是相同的,因此可以对所有按钮使用单个处理程序。