[英]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.