请更正我的代码,它只是不工作,MPG计算器

问题描述 投票:-4回答:2

这是代码,请帮忙。它不起作用。我答应了它会。我无法将文本框的字符串转换为int,因此我无法进行所需的数学运算。

        public Form1()
        {
            InitializeComponent();
        }

        int userVal = int.Parse(Form1.textBox1.Text);
        private void button1_Click(object sender, EventArgs e)
        {
            int answer = (Form1.textBox1 * Form1.textBox2);
            MessageBox.Show("MPG: ", answer);
        }
c# forms textbox
2个回答
2
投票

首先。你应该从基础开始,因为在你的代码中你试图将两个TextBox控件相乘,这是不可能的。

其次。我纠正了你的代码。

Int32.TryParse(someString,out anInt)尝试将第一个参数(someString)转换为Int32,并返回有关转换的布尔值,无论它是否成功。如果转换成功,则转换后的值将存储在第二个参数(anInt)中,Int32.TryParse(someString,out anInt)将返回true

在更正后的代码中,您只需尝试从两个stringes转换TextBoxs。如果你能够这样做(Int32.TryParse的返回值)只需将你从int得到的两个Int32.TryParses相乘

public Form1()
{
    InitializeComponent();
}


private void button1_Click(object sender, EventArgs e)
{
    int num1,num2;
    If(Int32.TryParse(textBox1.Text,out num1) && Int32.TryParse(textBox2.Text,out num2))
    {
        int answer = num1 * num2;
        string output = "MPG: "+ answer.ToString();
        MessageBox.Show(output);
    }

}

-2
投票
int userVal = int.Parse(Form1.textBox1.Text);

首先,这行必须放在button1_Click函数中才能工作。但现在的问题是你使用字符串输入来接受数字,这不是一个好主意,因为如果你输入“abc”例如,int.Parse将抛出异常。

现在您只需要将textBox1和2替换为数字输入,然后使用以下代码:

public Form1()
{
    InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
    int answer = (numericalInput1.value * numbericalInput2.value);
    MessageBox.Show("MPG: ", answer);
}
© www.soinside.com 2019 - 2024. All rights reserved.