تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
طلب شرح كود
#1
السلام علكيم
ممكن من الإخوة الكرام شرح الكود التالي
كود :
    Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress

Select Case e.KeyChar
           Case ChrW(8)

           Case ChrW(46)
               e.KeyChar = ChrW(44)
           Case ChrW(44), ChrW(48) To ChrW(58)
           Case Else
               e.KeyChar = ChrW(0)
               Beep()
       End Select
الرد }}}
تم الشكر بواسطة: حريف برمجة , ابراهيم ايبو
#2
الكود يضمن ان الستخدم لن يدخل الا ارقام او الرمز , فقط 
e.KeyChar قيمة من نوع حرف char  يمثل الزر الذي ضغط عليه المستخدم

Select case نخبر البرنامج ماذا يفعل بناء على قيمة الزر المضغوط

ChrW دالة تعود بحرف بناء على كود الاسكيي الخاص 

قائمة الاسكي كاملة من هنا : http://www.asciitable.com/

هو زر backspace نخبره ان لايفعل شيء اذا تم ضغط هذا الزر

ChrW(48) To ChrW(58) هو الارقام من 0 الى 9  ، لايفعل شيء ايضا لانه رقم ، وكذلك بالنسبة ل ChrW(44) وهو الفاصلة

ChrW(46) هو النقطة ، نخبره بان يدخل فاصلة بدلا منها 

اذا كان المدخل غير ذلك لايضغط على شيء ChrW(0) تمثل Null وكذلك يصدر صوت عن طريق Beep
الرد }}}
#3
(09-08-20, 09:55 PM)Anas Mahmoud كتب : الكود يضمن ان الستخدم لن يدخل الا ارقام او الرمز , فقط 
e.KeyChar قيمة من نوع حرف char  يمثل الزر الذي ضغط عليه المستخدم

Select case نخبر البرنامج ماذا يفعل بناء على قيمة الزر المضغوط

ChrW دالة تعود بحرف بناء على كود الاسكيي الخاص 

قائمة الاسكي كاملة من هنا : http://www.asciitable.com/

هو زر backspace نخبره ان لايفعل شيء اذا تم ضغط هذا الزر

ChrW(48) To ChrW(58) هو الارقام من 0 الى 9  ، لايفعل شيء ايضا لانه رقم ، وكذلك بالنسبة ل ChrW(44) وهو الفاصلة

ChrW(46) هو النقطة ، نخبره بان يدخل فاصلة بدلا منها 

اذا كان المدخل غير ذلك لايضغط على شيء ChrW(0) تمثل Null وكذلك يصدر صوت عن طريق Beep

بارك الله فيك
الرد }}}
#4
كيف يمكني ان أطبق الكود على اكثر من textbox دفعة واحدة ؟
الرد }}}
#5
(10-08-20, 02:08 AM)paveldida كتب : كيف يمكني ان أطبق الكود على اكثر من textbox دفعة واحدة ؟

اضف التكست بوكسات هنا بعد Handles :
كود :
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress,TextBox2.KeyPress,TextBox3.KeyPress
الرد }}}
#6
(10-08-20, 03:50 PM)Anas Mahmoud كتب :
(10-08-20, 02:08 AM)paveldida كتب : كيف يمكني ان أطبق الكود على اكثر من textbox دفعة واحدة ؟

اضف التكست بوكسات هنا بعد Handles :
كود :
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress,TextBox2.KeyPress,TextBox3.KeyPress

بارك الله فيك ، نجح معي
الرد }}}
تم الشكر بواسطة: حريف برمجة , ابراهيم ايبو
#7
(09-08-20, 08:31 PM)paveldida كتب :
السلام علكيم
ممكن من الإخوة الكرام شرح الكود التالي
كود :
    Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress

Select Case e.KeyChar
           Case ChrW(8)

           Case ChrW(46)
               e.KeyChar = ChrW(44)
           Case ChrW(44), ChrW(48) To ChrW(58)
           Case Else
               e.KeyChar = ChrW(0)
               Beep()
       End Select

لما استخدمت الكود وجدت انه بيبدل الفاصله الرقميه الحقيقيه بفاصله اخرى لا تصلح للعمليات الحسابيه فسببت عندي نتيجه خطا

ممكن اعرف السبب منشان استفيد؟
الرد }}}
تم الشكر بواسطة: حريف برمجة , ابراهيم ايبو
#8
السلام عليكم ورحمة الله وبركاته
اولا يوجد خطأ وهو استبدال النقطة بالفاصلة وهذا غير صحيح في العمليات لبحسابية كما اشار اخي بلدي جزاه الله كل خير والمفروض العكس

 ثانيا لاداعي ان نستبدل الفاصلة بالنقطة يكفي ان يكون الكود بهذا الشكل
كود :
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress

       Select Case e.KeyChar
           Case ChrW(8)
           Case ChrW(46), ChrW(48) To ChrW(58)
           Case Else
               e.KeyChar = ChrW(0)
               Beep()
       End Select
   End Sub
اعمل الخير وأجرك لا تنتظره فالله خير من إليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات







الرد }}}
تم الشكر بواسطة: بلدي , حريف برمجة , حريف برمجة


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


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