文本框字符串为双精度,c#中出现空文本框错误

本文关键字:文本 错误 字符串 双精度 | 更新日期: 2023-09-27 18:15:29

我希望有人能帮助我。

我在c#做一个Windows窗体,我有一个文本框的一些问题。我是编程新手。

///variables
double n, x, i = 15.0, act = 25.0, f, z;
string ac;
int n2, pos, f2;

///Form1 Load
private void Form1_Load(object sender, EventArgs e)
{
    ///This allow to have decimal with the initial value of 25.0
    textBox2.Text = string.Format("{0:0.0}", act);
}

///TextBox2
private void textBox2_TextChanged(object sender, EventArgs e)
{
    if (textBox2.Text != null )
    {
        ac = Convert.ToString(textBox2.Text);
        z = double.Parse(textBox2.Text);

        if (z >= 0.0 && z <= 30.0)
        {
            ///Operations
            f = 30.0 - z;
            f2 = (int)f * 5;
            this.pictureBox4.Size = new System.Drawing.Size(25, f2);
        }
        if (textBox2.Text == "")
        {
            ///Operations
            z = 0.0;
            textBox2.Text = "0,0";
            this.pictureBox4.Size = new System.Drawing.Size(25, 150);

            ///Message that say value is not between 0.0 and 30.0 
            MessageBox.Show("Enter values between 0.0 y 30.0", "Value out of range", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
        }

我想在textBox2中输入一个十进制值。但是当我按下delete 25.0的返回键时,它返回这个错误:类型为"System"的未处理异常。在mscorlib.dll中发生FormatException'附加信息:输入字符串格式不正确。我想修复这个错误,它是在空输入值与键盘,这个值将在0.0和30.0之间,如果textBox2上的值超出范围,它应该显示一个消息,值不在0.0和30.0之间。请在此范围内输入一个值。

我还有这个

private void textBox2_MouseUp(object sender, MouseEventArgs e)
{
    MessageBox.Show("Enter values between 0.0 and 30.0");
}

有了这个代码,当我用鼠标按下textBox2时,它会显示给我这个消息。

代码的操作是移动和更改两个PictureBox的大小。

改变PictureBox的大小工作得很好,我认为十进制值也工作得很好,我输入0.0和30.0之间的值,它工作,问题是当它是空值和负数。

Thanks for the help

文本框字符串为双精度,c#中出现空文本框错误

也许您想使用如下格式:

if(!double.TryParse(textBox2.Text, out z))
    MessageBox.Show("The value cannot be parsed");

您需要将其转换为DOUBLE

double strTxt = Convert.ToDouble(txtBox1.text);