مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

leily1

عضویت از 1394/06/22

اعتبار سنجی در #c

  • یکشنبه 23 مهر 1396
  • 10:09
تشکر میکنم

سلام وقت بخیر

من برای اعتبار سنجی تو پروژه تحت ویندوز سی شارپم کد زیر رو تو تابع textchange مربوط به textbox ام می نویسم 

 (if (string.IsNullOrEmpty(textBox2.Text
            {
                errorProvider1.SetError(textBox2, "لطفا نام را وارد کنید");
            }
            else
            {
                errorProvider1.Clear();
            }

ولی یک مشکلی که هست اینه که اگر کاربر وارد textbox نشه و دکمه ثبت رو بزنیم کار نمی کنه و به error می خوره 

و موضوع دیگه این که حتی اگر errorProvider نشون داده بشه اگر کاربر دکمه ثبت رو بزنه کار می کنه و به error می خوره

آیا باید از راه دیگه ای برای اعتبار سنجی داده هام استفاده کنم؟

پیشاپیش ممنونم از راهنماییتون

پاسخ های این پرسش

تعداد پاسخ ها : 10 پاسخ
کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • یکشنبه 23 مهر 1396
  • 11:01

این لینک رو ببینید

کاربر سایت

leily1

عضویت از 1394/06/22

  • یکشنبه 23 مهر 1396
  • 12:35

با استفاده از این کد ها هم شرایط هیچ تغییری نکرد متاسفانه

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • یکشنبه 23 مهر 1396
  • 19:54

در کجا کد اعتبار سنجی را قرار دادید ؟

کد کامل را قرار دهید

کاربر سایت

leily1

عضویت از 1394/06/22

  • یکشنبه 23 مهر 1396
  • 21:08

کد زیر رو داخل تابع 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 بر خورد می کنه

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • یکشنبه 23 مهر 1396
  • 21:45

از طریق کلید کد در ادیتور کدهاتون رو قرار بدید

کاربر سایت

leily1

عضویت از 1394/06/22

  • دوشنبه 24 مهر 1396
  • 08:40

عذر می خوام من با گوشی نوشته بودم مثل اینکه خیلی بد شده بود

تایپیک قبل رو ویرایش کردم

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • دوشنبه 24 مهر 1396
  • 09:30

کدها رو داخل رویداد Click دکمه قرار دهید و تست کنید

کاربر سایت

leily1

عضویت از 1394/06/22

  • دوشنبه 24 مهر 1396
  • 09:32

منظورتون اینه که هر دو قسمت کد رو داخل رویداد click بذارم؟

من قسمت دوم رو فقط داخل رویداد click دکمه ثبت اطلاعات گذاشته بودم

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • دوشنبه 24 مهر 1396
  • 09:37

بله

این بخش کافیه

try 
   {  
      int x = Int32.Parse(textBox1.Text);  
      errorProvider1.SetError(textBox1, "");  
   }  
   catch (Exception ex)  
   {  
      errorProvider1.SetError(textBox1, "Not an integer value.");  
   }

کاربر سایت

leily1

عضویت از 1394/06/22

  • دوشنبه 24 مهر 1396
  • 09:54

تمام کد ثتب رو داخل try گذاشتم و آخرش هم کد catch رو زدم ، جواب داد ،ولی متوجه نمی شم این خط کد تو try چه لزومی داره؟

errorProvider1.SetError(textBox1, ""); 

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)