C#:有关广播和复选框控件的简单问题.获得错误的退货类型?

Ray*_*Ray 0 .net c# visual-studio-2010

得到错误:

Error   1   'string RadioGroupTester.Form1.chkReceipt_CheckedChanged(object, System.EventArgs)' has the wrong return type
Run Code Online (Sandbox Code Playgroud)

当我编译一个非常简单的程序来理解无线电和复选框控件.

这是表单的代码如下:

    private string rdoMastercard_CheckedChanged(object sender, EventArgs e)
    {
        if (rdoMastercard.Checked)
            return "You have selected Mastercard";
        else
            return "You have selected Visa";
    }

    private string chkReceipt_CheckedChanged(object sender, EventArgs e)
    {
        if (chkReceipt.Checked)
            return "You will receive a receipt";
        else
            return "You will not receive a receipt";
    }

    private string chkRecurring_CheckedChanged(object sender, EventArgs e)
    {
        if (chkRecurring.Checked)
        {
            return "You will be charged monthly";
        }
        else
            return "This is a one time payment";
    }
Run Code Online (Sandbox Code Playgroud)

以下是表单的样子:

在此输入图像描述

我在这做错了什么?我道歉,但我仍然是C#和VS 2010的新手.

谢谢,雷

Ry-*_*Ry- 7

您无法从事件处理程序返回任何内容.你的意思是显示一个消息框吗?或者通过标签提供反馈?它会是这样的:

private string void rdoMastercard_CheckedChanged(object sender, EventArgs e)
{
    if (rdoMastercard.Checked)
        return MessageBox.Show("You have selected Mastercard");
    else
        return MessageBox.Show("You have selected Visa");
}

和你的其他例子一样.此示例使用消息框,但您可以设置Label的文本或其他内容.

原因?当你从事件处理程序返回一些东西时,你如何期望C#知道你想做什么?事件处理程序处理事件,仅此而已.

编辑:那么对于你想要做的事情,它将是这样的:

private void btnConfirmChoices_Click(object sender, EventArgs e) {
    string str = string.Empty;

    if(rdoMastercard.Checked)
        str += "You have selected Mastercard\n";
    else
        str += "You have selected Visa\n";

    if (chkReceipt.Checked)
        str += "You will receive a receipt\n";
    else
        str += "You will not receive a receipt\n";

    if (chkRecurring.Checked)
        str += "You will be charged monthly";
    else
        str += "This is a one time payment";

    MessageBox.Show(str);
}
Run Code Online (Sandbox Code Playgroud)