PDA

View Full Version : سوال: مشکل با Error Providers



JaVa
چهارشنبه 24 آبان 1391, 22:39 عصر
سلام و...

دوستان من به شکل زیر از error Provider استفاده کردم ولی مشلی که وجود داره بعد از رفع مشکل
باز هم علامت تعجب کنار تکس باکس هست ؟؟؟

از متد clear هم استفاده می کنم باز هم نشون میده :


کد :

ry
Dim eror As New ErrorProvider
eror.Clear()
If txtcode.Text = "" Then
eror.SetError(txtcode, "کد کتاب را وارد کنید")
ElseIf txttitle.Text = "" Then
eror.SetError(txttitle, "عنوان کتاب را وارد کنید")
ElseIf txtmoalef.Text = "" Then
eror.SetError(txtmoalef, "مولف کتاب را وارد کنید")
ElseIf txttranslate.Text = "" Then
eror.SetError(txttranslate, "مترجم کتاب را وارد کنید")
ElseIf txtnasher.Text = "" Then
eror.SetError(txtnasher, "ناشر کتاب را وارد کنید")
ElseIf txtprint.Value = 0 Then
eror.SetError(txtprint, "شماره چاپ کتاب را وارد کنید")
ElseIf txtpage.Value = 0 Then
eror.SetError(txtpage, "تعداد صفحات کتاب را وارد کنید")
ElseIf txttotal.Value = 0 Then
eror.SetError(txttotal, "تعداد موجودی کتاب را وارد کنید")
Else '*************************
' اطلاعات رو ذخیره کن
End If
End If

Catch ex As Exception

End Try

gilsoft
پنج شنبه 25 آبان 1391, 02:16 صبح
سلام و...

دوستان من به شکل زیر از error Provider استفاده کردم ولی مشلی که وجود داره بعد از رفع مشکل
باز هم علامت تعجب کنار تکس باکس هست ؟؟؟

از متد clear هم استفاده می کنم باز هم نشون میده :


سلام دوست عزیز
بعد از رفع مشکل باید از کد زیر استفاده کنی :

eror.SetError(txttotal, "")

موفق باشید

mhq1368
پنج شنبه 25 آبان 1391, 08:43 صبح
سلام
شما توی else آخر هم باید اطلاعات رو ذخیره کنید هم eror.clear() رو اجرا کنید

mahsa.admin
پنج شنبه 25 آبان 1391, 09:10 صبح
من همیشه از کد زیر استفاده میکنم
If Trim(sn.Text) = "" Then
ErrorProvider1.SetError(sn, " ")
Me.sn.Focus()
Exit Sub
Else
ErrorProvider1.SetError(sn, "")
end if

mhq1368
پنج شنبه 25 آبان 1391, 10:50 صبح
من همیشه از کد زیر استفاده میکنم
If Trim(sn.Text) = "" Then
ErrorProvider1.SetError(sn, " ")
Me.sn.Focus()
Exit Sub
Else
ErrorProvider1.SetError(sn, "")
end if


کد شما هم درسته ولی برای برنامه ایشون باید کدزیر


eror.clear()

نوشته بشه

JaVa
پنج شنبه 25 آبان 1391, 14:02 عصر
دوباره سلام و...


سلام
شما توی else آخر هم باید اطلاعات رو ذخیره کنید هم eror.clear() رو اجرا کنید

دوباره اخطار ها رو پاک نمی کنه!



Private Sub Insert()
Dim eror As New ErrorProvider
eror.Clear()
If txtcode.Text = "" Then
eror.SetError(txtcode, "کد کتاب را وارد کنید")
ElseIf txttitle.Text = "" Then
eror.SetError(txttitle, "عنوان کتاب را وارد کنید")
ElseIf txtmoalef.Text = "" Then
eror.SetError(txtmoalef, "مولف کتاب را وارد کنید")
ElseIf txttranslate.Text = "" Then
eror.SetError(txttranslate, "مترجم کتاب را وارد کنید")
ElseIf txtnasher.Text = "" Then
eror.SetError(txtnasher, "ناشر کتاب را وارد کنید")
ElseIf txtprint.Value = 0 Then
eror.SetError(txtprint, "شماره چاپ کتاب را وارد کنید")
ElseIf txtpage.Value = 0 Then
eror.SetError(txtpage, "تعداد صفحات کتاب را وارد کنید")
ElseIf txttotal.Value = 0 Then
eror.SetError(txttotal, "تعداد موجودی کتاب را وارد کنید")
Else '*************************
Dim bind As New Bind
bind = New Bind

bind.Bind(dgv, "select b_code from TBL_Book where b_code=" & txtcode.Text)
If dgv.RowCount > 1 Then
MessageBoxEx.EnableGlass = False
MessageBoxEx.Show(". این کد کتاب قبلا ثبت شده است" & vbCrLf & ". لطفا کد کتاب را تغییر دهید ", "خطا در ثبت اطلاعات", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
Else
'ثبت داده ها
eror.Clear() 'پاک کردن اخطار ها
End If
End If
End Sub

JaVa
پنج شنبه 25 آبان 1391, 14:05 عصر
مشکلش از این بود که من یه نوع ازش تعریف کرده بودم و بصورت مستقیم که از tollbox اضافش نکردم.

Dim eror As New ErrorProvider

مرسی از کمکهاتون.:لبخندساده:

mhq1368
پنج شنبه 25 آبان 1391, 16:07 عصر
مشکلش از این بود که من یه نوع ازش تعریف کرده بودم و بصورت مستقیم که از tollbox اضافش نکردم.

Dim eror As New ErrorProvider

مرسی از کمکهاتون.:لبخندساده:



به هر حالا خدارو شکر مشکلت حل شد

ولی من خودم روش شما رو امتحان کردم درست بود مشکل نداشت
فقط همون مشکل رو باید حل میکردی

چینی ساز
جمعه 16 اسفند 1392, 16:55 عصر
مشکلش از این بود که من یه نوع ازش تعریف کرده بودم و بصورت مستقیم که از tollbox اضافش نکردم.

Dim eror As New ErrorProvider

مرسی از کمکهاتون.:لبخندساده:

سلام میشه بگی چیطور اضافه کردی؟ چون من هم مشکل دارم

چینی ساز
جمعه 16 اسفند 1392, 16:59 عصر
من همیشه از کد زیر استفاده میکنم
If Trim(sn.Text) = ""Then
ErrorProvider.SetError(sn, " ")
Me.sn.Focus()
ExitSub
Else
ErrorProvider1.SetError(sn, "")
endif


سلام من هم از این کد استفاده می کنم ولی از قسمت .SetEr ارور میگیره
میشه بگین چیطور باید استفاده کنم
اولش باید ی متغییر از نوع ErrorProvider تعریف کنم ؟؟؟؟؟؟؟؟؟؟؟؟؟
dim errorprovider1 as new ErrorProvider

behrooz69
شنبه 17 اسفند 1392, 00:20 صبح
واستون با عکس توضیح میدم که کامل متوجه شین دوستان من
نیاز به تعریف متغییر نیست .
فقط باید شی ء Error Provider رو از Toolbox برنامه به فرمتون اضافه کنید . و با تیکه کدی که بالا دوستان گفتن اررور رو نمایش بدید .

اول از همه باید مقدار اونو پاک کنی با این دستور :

ErrorProvider1.Clear()

دوم حالا هرجایی که میخوای ازش استفاده میکنی. واست ساده تر بگم شما میای یه عمل Select Sql انجام میدی . 2 حالت داره . یا جواب میگیری یا نه .

اگ بگیری که مقدار رشته هاتو نشون میدی . اگه نگیری باید یه ارروری چیزی به کاربر نشون بدی حالا یا با Msgbox یا Lable یا Try ... Catch و یا با Error Provider

سوم Error Provider به چند صورت استفاده میشه . 2 نمونش اینه :


اول : بیای اررور خودتو به شی مورد نظر نسبت بدی

If TxtUsername.Text = "" Then ErrorProvider1.SetError(TxtUsername, "نام کاربری را وارد کنید")


http://uploadkon.ir/uploads/ErrorPro1.jpg

اینجا اگه تکس باکس من خالی باشه و دکمه من زده بشه اررور میده که خالیه حالا شما میتونی زیبا تر کنیش و توی رویداد Leave تکس باکست بیای چک کنی و همون لحظه اررور رو ببینی . حالا سلیقش با خودتون .

************************************************** ****************

دوم بیای از طریقSender خود Error Provider این کارو انجام بدی اینجوری :

ErrorProvider1.SetError(sender, "نام کاربری و کلمه عبور صحیح نمی باشد")


http://uploadkon.ir/uploads/ErrorPro2.jpg


با این روش شکل اررور کنار دکمه ای که مسبب این خطاست قرار میگیره .



یا حق

چینی ساز
شنبه 17 اسفند 1392, 09:30 صبح
سلام
ممنون از جواب آقا بهروز
من از این کد استفاده م کنم
If TextBox1.Text = ""Then
er.SetError(TextBox1, "نام طرف حساب الزامی است")
TextBox1.Focus()
Label1.ForeColor = Color.LightCoral
Else

er.SetError(TextBox1, "")
Label1.ForeColor = Color.Black
EndIf

بار اول که درست عمل می کنه ولی بعد از پر کردن تکس باکس اون علامت از جلو تکس باکس نمیره