تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[كود] مشكلة مع الحدث keypress مع الاداة datagrideview
#1
السلام عليكم  
اصدقائي الاعزاء   
ارجوا المساعدة في حل هذه المشكلة  
اريد منع المستخدم من كتابة حروف في العمود الاول من الاداة  datagrideview  
وفي نفس الوقت  العمود الثالث يكتب ارقام مع اخذ موضوع لافاصلة بعين الاعتبار بمعني يمكنة اضافة النقطة الخاصة بالكسور العسشرية  
ومنع تكرار كتابة هذه الفاصلة اكثر من مرة  

حاولت بكل ما اوتيت من قوة لم اصل الى حل  
ارجوا المساعده   ,   
وشكرا للجميع
الرد }}}
تم الشكر بواسطة:
#2
معقول الموضوع صعب
الرد }}}
تم الشكر بواسطة:
#3
لا اخي موصعب 
عليك اولا ان تعطي قيمة رقم العمود بالداتا غريد للافتة او ضعها بمتغير عمومي 
اي عند  الضغط على احدى خلايا الداتا غريد تاخذ اللافتة رقم العمود
وبعدها  هذا الكود  لكن هذا الكود للارقام فقط
بالتوفيق 
كود :
 _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
                                                        Heart سبحان الله والحمد لله ولا اله الا الله والله اكبر  Heart
الرد }}}
تم الشكر بواسطة:
#4
اشكرك على الاجابة
كل ما كتبته انا طبقته سابقا وما في مشكلة بس موضوع اني امنع المستخدم من كتابة النقطة مرتين ما زبطش معي
الرد }}}
تم الشكر بواسطة:
#5
ارجو المساعده يا شباب مين عنده فكره عن الموضوع
الرد }}}
تم الشكر بواسطة:
#6
   
dgv1 اسم الاداة
dgv1.currentcell.columninde =2 ارقام العمود
بوضع ده هي تسمح بالحروف فقط
لو عاوزها تسمح بالارقام فقط احذف كلمة not امام الجملة
if not(123456789.).indexof
صلى الله على نبينا محمد
اخيكم / محمود صالح
  قال الزهري رحمه الله  
 مــا عُـــبـِد الله بشئ أفضل من العلم 
الرد }}}
تم الشكر بواسطة:
#7
اشكرك على الاجابة
سؤالي اخي الفاضل ليس منع الكتابة بالارقام او الحروف
انا اسمح للخلية تكتب ارقام وفواصل عشرية وفي هذه الحالة لوكتب المستخجم 100 مرةفاصلة عشرية بيقبلها الببرنامح
اريد ان امنعه من كتابتها اكثر من مرة
الرد }}}
تم الشكر بواسطة:
#8
(23-12-17, 12:05 AM)nooralcown كتب : اشكرك على الاجابة
سؤالي اخي الفاضل ليس منع الكتابة بالارقام او الحروف
انا اسمح للخلية تكتب ارقام وفواصل عشرية وفي هذه الحالة لوكتب المستخجم 100 مرةفاصلة عشرية بيقبلها الببرنامح
اريد ان امنعه من كتابتها اكثر من مرة




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



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم