C# 文本框文本将自身设置为空字符串

C# 文本框文本将自身设置为空字符串,c#,textbox,C#,Textbox,当我运行此程序时,会出现一个错误,显示为rpmTextBox.Text由于格式错误而无法转换,并且在调试器上显示为rpmTextBox.Text=”“。我在初始化中将0指定为字符串,但它将其设置为空字符串 有什么建议吗? 谢谢。您可以使用这个方法。还请记住,rpm不应等于0(否则您将得到): 设置powerTextBox.Text=“0”时会发生什么情况?您引发TextChanged事件。其他文本框文本未设置,因此其文本属性为空。然后这里:扭矩=功率/rpm*9550你有一个被零除的等待发生。输

当我运行此程序时,会出现一个错误,显示为rpmTextBox.Text由于格式错误而无法转换,并且在调试器上显示为rpmTextBox.Text=”“。我在初始化中将0指定为字符串,但它将其设置为空字符串

有什么建议吗? 谢谢。

您可以使用这个方法。还请记住,rpm不应等于0(否则您将得到):


设置
powerTextBox.Text=“0”时会发生什么情况?您引发
TextChanged
事件。其他文本框文本未设置,因此其文本属性为空。然后这里:
扭矩=功率/rpm*9550你有一个被零除的等待发生。输入必须经过验证。您不能盲目地解析传入的任何内容。请考虑在构造函数的末尾设置一个布尔值。然后在
powerTextBox\u TextChanged
中,如果
finishedload
false
则退出(无点验证,仍在加载表单)。
public Form1()
{
    InitializeComponent();
    powerTextBox.Text = "0";
    torqueTextBox.Text = "0";
    rpmTextBox.Text = "0";
}

private void powerTextBox_TextChanged(object sender, EventArgs e)
{
    power = Convert.ToDouble(powerTextBox.Text);

    rpm = Convert.ToDouble(rpmTextBox.Text);

    torque = power / rpm * 9550;
    torqueTextBox.Text = Convert.ToString(torque);
}
public Form1()
{
    InitializeComponent();
    powerTextBox.Text = "0";
    torqueTextBox.Text = "0";
    rpmTextBox.Text = "0";
}

private void powerTextBox_TextChanged(object sender, EventArgs e)
{
    if(Double.TryParse(powerTextBox.Text, out double power)
       && Double.TryParse(rpmTextBox.Text, out double rpm))
    {
       if(rpm != 0)
       {
          torque = power / rpm * 9550;
          torqueTextBox.Text = Convert.ToString(torque);
       }
    }
    else
    {
       //Handle invalid inputs
       torqueTextBox.Text = "Wrong power or rpm";
    }
}