为什么我一直收到这些错误?

时间:2015-02-11 04:15:47

标签: c#

我试图在C#中编写一个程序,允许用户输入已售出的座位数,然后程序将每个数字乘以价格,以得出每个部分中有多少个树枝。我已经到了最后,但由于texbox.toString部分下面的红线,他的程序无法正常工作。有人能帮助我知道我的错误是什么吗?

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void label7_Click(object sender, EventArgs e)
    {

    }

    private void button3_Click(object sender, EventArgs e)
    {
        this.Close();
    }

    private void button2_Click(object sender, EventArgs e)
    {
        textBox4.Text = "";
        textBox3.Text = "";
        textBox2.Text = "";
        total.Text = "";
        input1.Text = "";
        input2.Text = "";
        input3.Text = "";
    }

    private void button1_Click(object sender, EventArgs e)
    {
        int input1;
        int input2;
        int input3;

        input1 = int.Parse(input1.ToString());
        input2 = int.Parse(input2.ToString());
        input3 = int.Parse(input3.ToString());

        int sum1 = input1 * 15;
        int sum2 = input2 * 12;
        int sum3 = input3 * 9;

        sum1 = textBox3.ToString();
        sum2 = textBox2.ToString();
        sum3 = textBox4.ToString();
    }
}

5 个答案:

答案 0 :(得分:1)

获取textBox中写的string

textBox.Text;

在textBox中显示值sum

textBox.Text = sum.ToString();

这至少是button1_Click的样子:

private void button1_Click(object sender, EventArgs e)
{
    int in1; // change int names to not confuse woth textboxes
    int in2;
    int in3;

    in1 = int.Parse(input1.Text); // input1 is textBox
    in2 = int.Parse(input2.Text);
    in3 = int.Parse(input3.Text);

    int sum1 = in1 * 15;
    int sum2 = in2 * 12;
    int sum3 = in3 * 9;

    textBox3.Text = sum1.ToString();
    textBox2.Text = sum2.ToString();
    textBox4.Text = sum3.ToString();

}

答案 1 :(得分:0)

您可以只使用

int.Parse(textbox.Text);

答案 2 :(得分:0)

sum是一个整数,但textBox.ToString()是一个字符串。您不能将字符串分配给整数

应该是

textBox3.Text = sum1.ToString();

答案 3 :(得分:0)

问题出现了,因为您试图将字符串的值存储到int中。

该行:

sum = textBox.ToString();

只是将textBox的值转换为字符串,而不是 textBox中文本的值,并将其传递给sum变量。那不会起作用。

请改为尝试:

sum = Convert.ToInt32(textBox.Text);

但是,如果您想在sum中显示textBox的值,则可以隐式地从int转换为字符串:

textBox.Text = sum;

答案 4 :(得分:0)

使用"文字"而是文本框控件的属性。最好将它设置为" input1.Text.Trim()",因为这会删除意外进入输入的任何前导/尾随空格。

作为最佳实践,特别是在UI中从文本控件获取值时,最好使用Int32.TryParse。 (请参阅:Parse v. TryParse

另外,您的代码不遵循基本的命名约定。