簡體   English   中英

文本框字符串要加倍,在C#中錯誤為空文本框

[英]TextBox String To Double, error Empty TextBox in C#

我希望有一個人可以幫助我。

我在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中輸入一個十進制值。 但是,當我按Delete 25.0的返回鍵時,它返回此錯誤: mscorlib.dll中發生了'System.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之間輸入值也可以,問題是當它為空值和負數時。

謝謝您的幫助

也許您想使用類似:

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

您需要將其轉換為DOUBLE

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM