0

我遇到了一个不断发生的问题,我不确定问题是什么。我需要在 Microsoft Visual Studio 中创建一个程序,其中 radioButton1 用于查找连续数字的总和,radioButton2 用于查找数字的阶乘。

将有三个按钮,一个用于 FOR 循环,一个用于 WHILE 循环,一个用于 DO-WHILE 循环。我正在研究 FOR 按钮。

我要做的是进行选择,然后按下其中一个按钮,它会使用在消息框中单击的循环找到答案。

这是我到目前为止所得到的:

private void button1_Click(object sender, System.EventArgs e)
{
  if ((radioButton1.Checked == true) && (radioButton2.Checked == false))
  {
    int sum = 0;
    int number = int.Parse(numericUpDown1.Value.ToString());
    for (int i = 1; i <= number; i++)
    {
      sum = sum + i;
      MessageBox.Show("The sum of the consecutive numbers leading up to " + number + " is " + sum + ".");
    }
    MessageBox.Show("The sum of the consecutive numbers leading up to " + number + " is " + sum + ".");
  }
  else if ((radioButton2.Checked == true) && (radioButton1.Checked == false))
  {
    int product = 1;
    int number = int.Parse(numericUpDown1.Value.ToString());
    for (int i = 1; i <= number; i++)
    {
      product *= i;
      MessageBox.Show("The factorial of the numbers leading up to " + number + " is " + product + ".");
    }
    MessageBox.Show("The factorial of the numbers leading up to " + number + " is " + product + ".");
  }
  else
  {
    MessageBox.Show("Invalid");
  }
}

我不断收到这条消息:

“‘Lab5’不包含‘radioButton2.CheckedChanged’的定义,并且找不到接受‘Lab5’类型的第一个参数的扩展方法‘radioButton2.CheckChanged’(您是否缺少 using 指令或程序集引用?)。 "

老实说,我不知道这意味着什么。

任何帮助将不胜感激。

我想将它保留在 if-else 语句中,只是因为我不希望在选择 radioButton2 时弹出 radioButton1 的消息框。

4

2 回答 2

1

您可能无意中向该单选按钮添加了一个处理程序(例如,通过在设计器中双击它),然后将其删除。当解决方案正在构建时,它正在寻找该功能但找不到它。

检查 Lab5.Designer.cs 中的 radioButton2 代码。它看起来像这样:

 this.radioButton1.AutoSize = true;
 this.radioButton1.Location = new System.Drawing.Point(102, 162);
 this.radioButton1.Name = "radioButton1";
 this.radioButton1.Size = new System.Drawing.Size(85, 17);
 this.radioButton1.TabIndex = 1;
 this.radioButton1.TabStop = true;
 this.radioButton1.Text = "radioButton1";
 this.radioButton1.UseVisualStyleBackColor = true;
 this.radioButton1.CheckedChanged += new System.EventHandler(this.radioButton1_CheckedChanged); /* THis is the offending line! */

最后一行试图添加一个引用不存在方法的事件处理程序。您可以在此处删除它。

此外,当程序构建时,您应该能够双击编译错误,IDE 将带您找到问题的根源。

于 2013-04-05T00:35:11.460 回答
0

看起来像家庭作业。无论哪种方式,您都需要为事件 CheckChanged 的​​单选按钮实现一个处理程序。此外,如果您将这些单选按钮放在一个组中,则可以检查任何一个,并且在 checkchanged 事件中您应该填充一些 functionMode 或其他内容。例如,当 RadioButton1 被选中时,您应该存储一个变量,该变量将包含要应用的公式,在另一个被选中的变量上,您应该更改它。在按钮提交事件中,使用该变量查看当前模式并应用该公式。

于 2013-04-05T00:37:56.857 回答