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

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

- استخدم هذا الكود الذي سيكون في حدث الكي برس لأداة التكست :-

كود :
Private Sub Text1_KeyPress(KeyAscii As Integer)
Dim KeyChar As String
"KeyChar = "MNOPQRSTUVWXYZABCDEFGHIJKL
IF Instr(1, KeyChar,Chr(KeyAscii)) =0 Then
KeyAscii =0
Exit Sub
End IF
End Sub

- تحياتي .
السلام عليكم

استاذى العزيز
اسمحلى بالمرور على المشاركة وذلك لاحتياجى ايضا لمثل هذا الكود

ولكن يوجد ملاحظات عند محاولة تطبيق الكود .... وهى كما يلى :-

1 - لا يمكن الكتابة اذا كانت الحروف اسمول وليست كابتال

2 - لا يقبل المسافات بين الكلمات

عذارا على التدخل ........... تقبل تحياتى
السلام عليكم...

اكتب الدالة التالية في قسم التصريحات العام:
كود :
Private Function IsEngLetter(ByVal KeyAscii As Integer, Optional ByVal AllowDigits As Boolean = False) As Boolean
    If KeyAscii <= 32 Then
        IsEngLetter = True
    ElseIf AllowDigits And (KeyAscii >= Asc("0") And KeyAscii <= Asc("9")) Then
        IsEngLetter = True
    Else
        IsEngLetter = (KeyAscii >= Asc("A") And KeyAscii <= Asc("Z")) Or (KeyAscii >= Asc("a") And KeyAscii <= Asc("z"))
    End If
End Function

لاحظ أن البارامتر الثاني AllowDigits اختياري لتحديد ما إذا سيتم قبول الأرقام أم لا و قيمته الافتراضية False أي لا يتم قبول الأرقام.

بعد ذلك نستدعي الدالة من الحدث KeyPress لمربع النص (أي مربع نص):
كود :
' قبول الحروف الإنجليزية فقط
Private Sub Text1_KeyPress(KeyAscii As Integer)
    If Not IsEngLetter(KeyAscii) Then KeyAscii = 0
End Sub

' قبول الحروف الإنجليزية و الأرقام
Private Sub Text1_KeyPress(KeyAscii As Integer)
    If Not IsEngLetter(KeyAscii, True) Then KeyAscii = 0
End Sub

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