View Full Version : توليد خطا در هنگام ورود داده نامعتبر در DataGridView1
sh2007
دوشنبه 25 آبان 1388, 14:21 عصر
دوستان سلام
يه سوالي پيش اومده برام اينه وقتي كاربر توي ديتا گريد در حال ويرايش ركورده اگه يك داده نامعتبر داد و يا اونرو خالي گذاشت چطوري پيغام خطا رو ايجاد كنم كه خطاي كاربر رو گوشزد كنه
ممنون
Mani_rf
دوشنبه 25 آبان 1388, 15:35 عصر
دیتاگرید رویدادی برای چک کردن مقدار سلول در لحظه ویرایش ندارد اما برای جلوگیری از وارد شدن مقداری نامتعارف می توانی از دو رویداد CellBeginEdit و CellEndEdit استفاده نمایی؛ بدین صورت که در هنگامی که کاربر می خواهد شروع به ویرایش سلولی نماید مقدار سلول را در متغیری ذخیره نمایید، هنگامی که کار ویرایش او به پایان رسید و قصد ترک آن سلول را داشت چک کنید اگر مقدار وارد شده با شرط های شما برابر نبود به او پیغام خطایی نمایش دهد و مقدار اولیه سلول را به آن باز گرداند.
DoDoklak
دوشنبه 25 آبان 1388, 16:34 عصر
دیتاگرید رویدادی برای چک کردن مقدار سلول در لحظه ویرایش ندارد
چرا دوست عزیز DGV رو هم میتونی کنترل کنی
ابتدا یک شی مانند زیر در بالای فرم تعریف کن
FriendWithEvents txt_dgv AsNew DataGridViewTextBoxEditingControl
بعد در رویداد EditingControlShowing مربوط به DGV این کد را قرار بده
PrivateSub DGV_EditingControlShowing(ByVal sender AsObject, ByVal e As System.Windows.Forms.DataGridViewEditingControlSho wingEventArgs) Handles DGV1.EditingControlShowing
txt_dgv = e.Control
EndSub
حالا دیگه همه چی مثل یک Text box ساده اماده کاره
مثلا رویداد Key Down
PrivateSub txt_dgv_KeyDown(ByVal sender AsObject, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txt_dgv.KeyDown
کد مربوطه برای بررسی
EndSub
EndSub
یا KeyPress
PrivateSub txt_dgv_KeyPress(ByVal sender AsObject, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txt_dgv.KeyPress
دستورات مربوطه
End Sub
و خیلی رویداد دیگه .دیدی چقدر راحته
sh2007
سه شنبه 26 آبان 1388, 10:05 صبح
دوستان ممنون
يه سوال ديگه
من توي بعضي برنامه ها ديدم وقتي كاربر در حال ويرايش يه ديتاگريد و يه سلوله اگه كاربر مقدار نامعتبر وارد كنه يه آيكن خطر و يا آيكن عبور ممنون قرمز رنگ توي رديف ديتاگريد مي آد كه براي كاربرنشون مي ده اين مقدار نامتعارف يا غير قابل قبوله اين ايكن رو چطوري بيارم
ممنون مي شم
Mani_rf
سه شنبه 26 آبان 1388, 18:01 عصر
برای انجام این کار می توانی از کنترل ErrorProvider استفاده نمایی.
saadi2
دوشنبه 16 آذر 1388, 03:16 صبح
Private Sub dgv_CellValidated(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles Dgv.CellValidated
Try
Try
If Dgv.Columns(e.ColumnIndex).Name = "fi" Then
Dgv.Item("bes", e.RowIndex).Value = _
Dgv.Item("wazn", e.RowIndex).Value * _
Dgv.Item("fi", e.RowIndex).Value
End If
Catch ex As Exception
saadi.Msgbox_show(ex.Message, _
Saadi_MsgBox.Saadi_Msg.button_1.بلی, _
Saadi_MsgBox.Saadi_Msg.Icon_1.خطا, "خطا در محاسبه بستانکار")
End Try
If Dgv.Columns(e.ColumnIndex).Name = "wazn" Then
Dgv.Item("bes", e.RowIndex).Value = _
Dgv.Item("wazn", e.RowIndex).Value * _
Dgv.Item("fi", e.RowIndex).Value
End If
Catch ex As Exception
End Try
End Sub
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.