منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : جعل مربع النص يقبل أرقام فقط
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم

أريد كود لجعل مربع النص لا يقبل الا أرقام فقط ولكم جزيل الشكر
Ahmed Abdulla كتب :السلام عليكم

أريد كود لجعل مربع النص لا يقبل الا أرقام فقط ولكم جزيل الشكر


تفضل اخي الكريم

يوضع في حدث KeyPress



كود :
Select Case KeyAscii
        'negotive numbers
        'KeyAscii; 45 is "-"
        Case 45
            If Len(TXT.Text) >= 1 Then
                KeyAscii = 0
            End If
        'KeyAscii; 8 is "Backspace", 46 is "." decimal,
        ' 48-57 is "0-9"
        Case 8, 46, 48 To 57
            KeyAscii = KeyAscii
        Case Else
            KeyAscii = 0
    End Select
جزاك الله كل خير وربنا يجعله في ميزان حسناتك
السلام عليكم
اقترح عليك هذا الكود
Option Explicit

Private Declare Function GetWindowLong Lib "user32.dll" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32.dll" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Const ES_NUMBER As Long = &H2000&
Private Const GWL_STYLE As Long = -16
Private Sub MakeNumericOnly(Obj As Object)

Dim Style As Long
Style = GetWindowLong(Obj.hwnd, GWL_STYLE)
Style = Style Or ES_NUMBER
SetWindowLong Obj.hwnd, GWL_STYLE, Style
End Sub
() Private Sub Form_Load
MakeNumericOnly Text1
End Sub



أو هذا الكود البسيط جدا المكون من سطر واحد
كود :
Private Sub Text1_KeyPress(KeyAscii As Integer)
    If Not Chr(KeyAscii) Like "[0123456789.]" Then KeyAscii = 0
    End Sub

ملاحظة: إذا أردت أن تكتب الأرقام السالبة فأضف الإشارة (ـ) إلى الأرقام والفاصلة أو النقطة: -.0123456789 وغيرها مما تسمح باستعماله
شكرا لاهتمامكم وجزاكم الله خيرا
جزيتم خيرا