TextBox字符串要加倍,错误在C#中的空TextBox

时间:2014-07-28 16:47:04

标签: c# winforms textbox double string

我希望有人可以帮助我。

我在C#中做了一个Windows窗体,我有一些TextBox的问题。我是编程新手。

///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中输入一个小数值。但是,当我按下返回键以删除25.0时,它会返回以下错误:未处理的类型&#39; System.FormatException&#39;发生在mscorlib.dll中 附加信息:输入字符串的格式不正确。我想修复此错误,并且它是空的,用键盘输入值,如果textBox2上的值不在,则此值将介于0.0和30.0之间范围它应该显示一个值不在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之间的值,它的工作原理,问题是它是空值和负数。

感谢您的帮助

2 个答案:

答案 0 :(得分:5)

也许你想使用类似的东西:

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

答案 1 :(得分:1)

您需要将其转换为DOUBLE

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