منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[كود] مشكلة مع الحدث keypress مع الاداة datagrideview - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : [كود] مشكلة مع الحدث keypress مع الاداة datagrideview (/showthread.php?tid=22967)



مشكلة مع الحدث keypress مع الاداة datagrideview - nooralcown - 17-12-17

السلام عليكم  
اصدقائي الاعزاء   
ارجوا المساعدة في حل هذه المشكلة  
اريد منع المستخدم من كتابة حروف في العمود الاول من الاداة  datagrideview  
وفي نفس الوقت  العمود الثالث يكتب ارقام مع اخذ موضوع لافاصلة بعين الاعتبار بمعني يمكنة اضافة النقطة الخاصة بالكسور العسشرية  
ومنع تكرار كتابة هذه الفاصلة اكثر من مرة  

حاولت بكل ما اوتيت من قوة لم اصل الى حل  
ارجوا المساعده   ,   
وشكرا للجميع


RE: مشكلة مع الحدث keypress مع الاداة datagrideview - nooralcown - 19-12-17

معقول الموضوع صعب


RE: مشكلة مع الحدث keypress مع الاداة datagrideview - العواد الصغير - 20-12-17

لا اخي موصعب 
عليك اولا ان تعطي قيمة رقم العمود بالداتا غريد للافتة او ضعها بمتغير عمومي 
اي عند  الضغط على احدى خلايا الداتا غريد تاخذ اللافتة رقم العمود
وبعدها  هذا الكود  لكن هذا الكود للارقام فقط
بالتوفيق 
كود :
 _Private Sub DataGridViewX1_EditingControlShowing(ByVal sender
As Object, ByVal e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgs) Handles DataGridViewX1.EditingControlShowing
       Dim TextEdit As TextBox = e.Control
       RemoveHandler TextEdit.KeyPress, AddressOf TextBox_KeyPress_Number
       AddHandler TextEdit.KeyPress, AddressOf TextBox_KeyPress_Number

   End Sub
   Public Sub TextBox_KeyPress_Number(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)
       'اجراء من اجل العمود لا يكتب الا ارقام
       Dim KeyAscii As Short = Asc(e.KeyChar)
       If Label7.Text = 1 Or Label7.Text = 2 Or Label7.Text = 3 Then
           If KeyAscii = 8 Then KeyAscii = 8 : Exit Sub
           If KeyAscii <= 47 Or KeyAscii > 57 Then KeyAscii = 0
           If KeyAscii = 0 Then
               e.Handled = True
           End If

       End If
   End Sub



RE: مشكلة مع الحدث keypress مع الاداة datagrideview - nooralcown - 21-12-17

اشكرك على الاجابة
كل ما كتبته انا طبقته سابقا وما في مشكلة بس موضوع اني امنع المستخدم من كتابة النقطة مرتين ما زبطش معي


RE: مشكلة مع الحدث keypress مع الاداة datagrideview - nooralcown - 22-12-17

ارجو المساعده يا شباب مين عنده فكره عن الموضوع


RE: مشكلة مع الحدث keypress مع الاداة datagrideview - محمود صالح - 22-12-17

[attachment=16466]
dgv1 اسم الاداة
dgv1.currentcell.columninde =2 ارقام العمود
بوضع ده هي تسمح بالحروف فقط
لو عاوزها تسمح بالارقام فقط احذف كلمة not امام الجملة
if not(123456789.).indexof


RE: مشكلة مع الحدث keypress مع الاداة datagrideview - nooralcown - 23-12-17

اشكرك على الاجابة
سؤالي اخي الفاضل ليس منع الكتابة بالارقام او الحروف
انا اسمح للخلية تكتب ارقام وفواصل عشرية وفي هذه الحالة لوكتب المستخجم 100 مرةفاصلة عشرية بيقبلها الببرنامح
اريد ان امنعه من كتابتها اكثر من مرة


RE: مشكلة مع الحدث keypress مع الاداة datagrideview - عبدالله الدوسري - 23-12-17

(23-12-17, 12:05 AM)nooralcown كتب : اشكرك على الاجابة
سؤالي اخي الفاضل ليس منع الكتابة بالارقام او الحروف
انا اسمح للخلية تكتب ارقام وفواصل عشرية وفي هذه الحالة لوكتب المستخجم 100 مرةفاصلة عشرية بيقبلها الببرنامح
اريد ان امنعه من كتابتها اكثر من مرة




يا أخي ليش متعب نفسك
الحقل أو الخلية الخاصة بالداتا قريد فيو لها خصائص
DefaultCellStyle -> Format -> N3
N يعني رقم
والرقم الي جنبها يعني عدد الأرقام العشرية بعد الباصلة
ولن تقبل الخلية غير هذا الـ  Format
وقم بإصطياد الأخطاء الخاصة بالداتا قريد فيو
[attachment=16473]
خل المستخدم يحط مليون فاصلة
لا تهتم كثير لهذة التفاصيل