在计算器中使用单选按钮

本文关键字:单选按钮 计算器 | 更新日期: 2023-09-27 18:26:11

我是C#的新手。我已经试了好几天了,想知道如何在计算器中使用单选按钮。我正在做一个计算器,它可以通过选择一个单选按钮来工作。

从教程到课本,我几乎什么都试过了。

希望你能帮我。

这是我失败的代码之一

namespace Calculator
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            int x,
                y;
            x = Convert.ToInt16(textBox1.Text);
            y = Convert.ToInt16(textBox2.Text);
            if (radioButton1.Checked) ;
            Math.Pow(x,y);
            if (radioButton2.Checked) ;
            (x / y);
            if (radioButton3.Cheked) ; 
        }
    }
}

在这种情况下,我总是得到错误

错误1只有赋值、调用、递增、递减和新对象表达式才能用作语句

我真的不知道该怎么办。

在计算器中使用单选按钮

您需要将结果分配给某个变量或文本框(如果有):

txtboxResult.Text = Math.Pow(x,y).ToString();

实际上存在许多问题。

private void button1_Click(object sender, EventArgs e)
{
    int x,
        y;
    x = Convert.ToInt16(textBox1.Text);
    y = Convert.ToInt16(textBox2.Text);
    if (radioButton1.IsChecked)    //removed `;`, it refers to the empty if block and 'IsChecked' is a property not 'Checked'
        txtboxResult.Text = Math.Pow(x,y).ToString();    //assign result to a textbox or may be a variable
    if (radioButton2.IsChecked)    //removed `;`
        (x / y);
    if (radioButton3.IsChecked) ; 
}

您应该将计算结果放入一些变量中

private void button1_Click(object sender, EventArgs e)
{
    double result;
    int x, y;
    x = Convert.ToInt16(textBox1.Text);
    y = Convert.ToInt16(textBox2.Text);
    if (radioButton1.Checked)
        result = Math.Pow(x,y);
    if (radioButton2.Checked)
       result = (x / y);
    //...
}

Checked是一个事件,而不是属性(选中单选按钮时激发的事件)。属性为IsChecked

if(radioButton1.IsChecked.GetValueOrDefault(false))
    ...

我认为错误在这个语句中

if (radioButton2.IsChecked)
        (x / y);

它应该像这个

if (radioButton2.IsChecked)
{
    txtboxResult.Text = Convert.toString(x / y);
}

在另一个文本框中填充结果,如下所示。

    int x,y;
    double res = 0.0;
    x = Convert.ToInt16(textBox1.Text);
    y = Convert.ToInt16(textBox2.Text);
    if (radioButton1.Checked)
        res = Math.Pow(x, y);
    if (radioButton2.Checked)
        res = (x / y);
    if (radioButton3.Checked) ;
    textBox3.Text = res.ToString();