تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
كود لجعل أداة النص لا تقبل إلا الأرقام
#1
بسم الله الرحمن الرحيم
[SIZE=4]الحمد لله وحده والصلاة والسلام على من لا نبي بعده

وبعد

[/SIZE]السلام عليكم ورحمة الله وبركاته

هذا الكود البسيط وظيفته أنه يجعل أداة النص لا تقبل إلا الأرقام فقط
مع ملاحظة صغيرة أنه يدعم اختصارات النسخ والقص واللصق شريطة أن يكون المراد لصقه رقما أيضا

وإليكم الكود

كود :
Private FunctionCopyPasteCut As Boolean = False
    Private Sub TextBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown
        Select Case e.KeyData
            Case 131158
                ' "Paste"
                If IsNumeric(Clipboard.GetText) Then FunctionCopyPasteCut = True
            Case 131160
                ' "Cut"
                FunctionCopyPasteCut = True
            Case 131139
                ' "Copy"
                FunctionCopyPasteCut = True
        End Select
    End Sub
    Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
        If FunctionCopyPasteCut = True Then
            FunctionCopyPasteCut = False
            Exit Sub
        End If
        If Not IsNumeric(e.KeyChar) Then
            If Not Asc(e.KeyChar) = Keys.Back Then
                e.Handled = True
            End If
        End If
    End Sub
الرد }}}
تم الشكر بواسطة:
#2
[COLOR="#008000"]تفضل اخي هذا الكود يؤدي نفس المهام ولكنه صغير ومختصر
PHP كود :
Private Sub TextBox1_KeyPress(ByVal sender As ObjectByVal e As System.Windows.Forms.KeyPressEventArgsHandles TextBox1.KeyPress

        On Error Resume Next


        
'كود كتابة الحروف العربية والاجنبية فقط في التكست مع استخدام زر المسح والتراجع والمسافة

        Select Case e.KeyChar
            Case "ء" To "ي", "A" To "z", ControlChars.Back, Chr(Keys.Space)
                e.Handled = False
            Case Else
                e.Handled = True
        End Select

    End Sub 

أسأل الله ام ينفعك وجميع المسلمين ان شاء الله يارب[/COLOR]
الرد }}}
تم الشكر بواسطة:
#3
[COLOR="#008000"]وهذا الكود لكتابة الارقام فقط داخل التيكست
PHP كود :
Private Sub TextBox2_KeyPress(ByVal sender As ObjectByVal e As System.Windows.Forms.KeyPressEventArgsHandles TextBox2.KeyPress


        On Error Resume Next

        
'كود كتابة الارقام فقط في التكست مع استخدام زر المسح والتراجع 

        Select Case e.KeyChar
            Case "0" To "9", ControlChars.Back
                e.Handled = False
            Case Else
                e.Handled = True
        End Select

      
    End Sub 


بالتوفيق ان شاء الله للجميع[/COLOR]
الرد }}}
تم الشكر بواسطة:
#4
أخي الكريم
يعطيك العافية على إثرائك للموضوع
وأشكر لك مشاركاتك القيمة
ولكن تنويه بسيط الكود الذي أضفته أنا يدعم عمليات النسخ والقص واللصق
بمعنى لو ضغط المستخدم زر ctrl + c فإنه سوف يتمكن من عمل نسخ للنص المحدد وكذلك للقص واللصق
أرجو أن تكون الصورة قد وضحت
الرد }}}
تم الشكر بواسطة:
#5
شكراً جزيلا لك
ينقل للقسم المناسب
الرد }}}
تم الشكر بواسطة:
#6
sooriaty03 كتب :أخي الكريم
يعطيك العافية على إثرائك للموضوع
وأشكر لك مشاركاتك القيمة
ولكن تنويه بسيط الكود الذي أضفته أنا يدعم عمليات النسخ والقص واللصق
بمعنى لو ضغط المستخدم زر ctrl + c فإنه سوف يتمكن من عمل نسخ للنص المحدد وكذلك للقص واللصق
أرجو أن تكون الصورة قد وضحت

[COLOR="#008000"]باركـ الله فيكـ
وشكرا جزيلاً للتوضيح
ربي يجعله في موازين حسناتك ان شاء الله[/COLOR]
الرد }}}
تم الشكر بواسطة:
#7
شكرا لكن اين لا يقبلان الرقم بالفاصلة
الرد }}}
تم الشكر بواسطة:
#8
تفضل أخي الكريم

كود :
Private FunctionCopyPasteCut As Boolean = False
    Private Sub TextBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown
        Select Case e.KeyData
            Case 131158
                ' "Paste"
                If IsNumeric(Clipboard.GetText) Then FunctionCopyPasteCut = True
            Case 131160
                ' "Cut"
                FunctionCopyPasteCut = True
            Case 131139
                ' "Copy"
                FunctionCopyPasteCut = True
        End Select
    End Sub
    Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
        If FunctionCopyPasteCut = True Then
            FunctionCopyPasteCut = False
            Exit Sub
        End If
        If Not IsNumeric(e.KeyChar) Then
            If Not Asc(e.KeyChar) = Keys.Back [color=#FF0000]AndAlso Not e.KeyChar = "."[/color] Then
                e.Handled = True
            End If
        End If
    End Sub

لاحظ الجملة الحمراء التي تم إضافتها
وهكذا فإنك تستطيع إضافة أي رمز تريد بنفس الطريقة
الرد }}}
تم الشكر بواسطة:
#9
من خلال النقاش الجميل معكم والمشاركات الفعالة
تم إيجاد كود أسهل
كود :
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
        Select Case e.KeyChar
            Case "0" To "9", Chr(24), Chr(3), ControlChars.Back
                e.Handled = False
            Case Chr(22)
                If Not IsNumeric(Clipboard.GetText) Then
                    e.Handled = True
                End If
            Case Else
                e.Handled = True
        End Select
    End Sub

وأيضا تستطيعون إضافة أي رمز تريدون - كأن تستثنوا الفاصلة مثلا
لاحظوا الجملة باللون الأحمر
كود :
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
        Select Case e.KeyChar
            Case "0" To "9", Chr(24), Chr(3), ControlChars.Back[color=#FF0000], "."[/color]
                e.Handled = False
            Case Chr(22)
                If Not IsNumeric(Clipboard.GetText) Then
                    e.Handled = True
                End If
            Case Else
                e.Handled = True
        End Select
    End Sub

وهذه فائدة النقاش البناء
أشكر لكم مشاركاتكم فقد استفدت منها كثيرا
بالتوفيق
الرد }}}
تم الشكر بواسطة:
#10
السلام عليكم

بارك الله فيكSmile
الرد }}}
تم الشكر بواسطة:



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


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