سلام وقت بخیر
من برای اعتبار سنجی تو پروژه تحت ویندوز سی شارپم کد زیر رو تو تابع textchange مربوط به textbox ام می نویسم
(if (string.IsNullOrEmpty(textBox2.Text { errorProvider1.SetError(textBox2, "لطفا نام را وارد کنید"); } else { errorProvider1.Clear(); }
ولی یک مشکلی که هست اینه که اگر کاربر وارد textbox نشه و دکمه ثبت رو بزنیم کار نمی کنه و به error می خوره
و موضوع دیگه این که حتی اگر errorProvider نشون داده بشه اگر کاربر دکمه ثبت رو بزنه کار می کنه و به error می خوره
آیا باید از راه دیگه ای برای اعتبار سنجی داده هام استفاده کنم؟
پیشاپیش ممنونم از راهنماییتون
این لینک رو ببینید
با استفاده از این کد ها هم شرایط هیچ تغییری نکرد متاسفانه
در کجا کد اعتبار سنجی را قرار دادید ؟
کد کامل را قرار دهید
کد زیر رو داخل تابع validating مربوط به textbox ام گذاشته بودم
try { int x = Int32.Parse(textBox1.Text); errorProvider1.SetError(textBox1, ""); } catch (Exception ex) { errorProvider1.SetError(textBox1, "Not an integer value."); }
و کد زیر رو هم داخل دکمه مربوط به ثبت اطلاعات
this.textBox1.Validating += new System.ComponentModel.CancelEventHandler(this.textBox1_Validating);
ولی خوب همچنان هم اگر وارد textbox نشی و دکمه ثبت رو بزنی errorprovider عمل نکرده و دکمه ثبت کار کرده و به error بر خورد می کنه
از طریق کلید کد در ادیتور کدهاتون رو قرار بدید
عذر می خوام من با گوشی نوشته بودم مثل اینکه خیلی بد شده بود
تایپیک قبل رو ویرایش کردم
کدها رو داخل رویداد Click دکمه قرار دهید و تست کنید
منظورتون اینه که هر دو قسمت کد رو داخل رویداد click بذارم؟
من قسمت دوم رو فقط داخل رویداد click دکمه ثبت اطلاعات گذاشته بودم
بله
این بخش کافیه
try { int x = Int32.Parse(textBox1.Text); errorProvider1.SetError(textBox1, ""); } catch (Exception ex) { errorProvider1.SetError(textBox1, "Not an integer value."); }
تمام کد ثتب رو داخل try گذاشتم و آخرش هم کد catch رو زدم ، جواب داد ،ولی متوجه نمی شم این خط کد تو try چه لزومی داره؟
errorProvider1.SetError(textBox1, "");
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)