בעיה עם VALIDATING ו-LEAVE

doher

New member
בעיה עם VALIDATING ו-LEAVE

private void textBox8_Validating(object sender, System.ComponentModel.CancelEventArgs e) { ValidateNum8(); } private bool ValidateNum8() { Int64 num=0; bool bStatus = true; try { num = Int64.Parse(textBox8.Text); if (textBox8.Text != "" && Int64.Parse(textBox8.Text) >= 0 && Int64.Parse(textBox8.Text) <= 10000000) { errorProvider1.SetError (textBox8,""); bStatus = false; } else errorProvider1.SetError (textBox8,"אנא הקש מחיר חוקי"); } catch (Exception ex) {errorProvider1.SetError (textBox8,"אנא הקש מחיר חוקי");} return bStatus; }​
עוד משהו.....
try { Int64 a = Int64.Parse(textBox8.Text); textBox8.Text = a.ToString("c"); } catch (Exception ex) {}​
מה שאני מנסה לעשות זה לבדוק אם המספר שהוקש הוא חוקי כלומר גדול מ-0 וקטן מ10 מיליון ושהוא לא מחרוזת....את זה אני עושה בעזרת ארוע VALIDATING עכשיו בנוסף לזה ברגע שהמשתמש יוצא מהשדה אני תופס ארוע נוסף LEAVE בכדי להציג את המספר על הטקסט בוקס בתור סכום דולרי.... הבעיה היא שלכל סכום דולרי שאני מקיש אני מקבל את ה ERROR PROVIDER יכול להיות שעשיתי פה טעות ממש קטנה אבל מרוב שאני כל כך הרבה הסתכלתי על הקוד אני לא מצליח להבין מה הטעות שלי.... בתודה מראש הדוהר.....
 

itaym02

New member
לא בטוח, אבל

ברגע שאתה מכניס טקסט לתוך הטקסט בוקס - אתה לא מפעיל את הVALIDATING שלו? (הכוונה דרך הקוד, ולא דרך המשתמש)
 

doher

New member
אנו חושב שלא כי..........

אני מכניס את הטקסט בארוע LEAVE כלומר ברדע שהמשתמש עובר לשדה הבא...
 

itaym02

New member
בכל זאת תבדוק

תכניס במקום פורמט דולארי, פורמט מספרי, ונראה אם זה יחזור על עצמו
 

mcsd

New member
דרך יותר אלגנטית לבצע זאת

private void textBox1_Validating(object sender, System.ComponentModel.CancelEventArgs e) { Int64 num=0; try { if (textBox8.Text != "") { num = Int64.Parse(textBox8.Text); if ((num < 0) || (num > 10000000)) { e.Cancel = true; errorProvider1.SetError (textBox8,"אנא הקש מחיר בין 0 ל 10000000"); } } else { e.Cancel = true; errorProvider1.SetError (textBox8,"אנא הקש מחיר"); } } catch { e.Cancel = true; errorProvider1.SetError (textBox8,"אנא הקש ספרות בלבד"); } } private void textBox8_Validated(object sender, System.EventArgs e) { errorProvider1.SetError (textBox8,""); textBox8.Text = System.Globalization.NumberFormatInfo.CurrentInfo.CurrencySymbol + textBox8.Text; } }
 

doher

New member
נכון אבל אני צריך את הפסיקים

בין האלפים למאיות וכו'.... הפתרון שלך בהחלט מקובל. תודה
 
למעלה