تاريخ : جمعه 05 اسفند 1390 | 10:08 | نویسنده : tarfande3tan

شما برای محدود کردن کاراکتر هایی که صفحه کلید در TextBox وارد می کند بایستی در داخل رخداد KeyPress و
Change
، کاراکترهای غیر مجاز را فیلتر کنید.
اگر فقط اینکار را در KeyPress انجام دهید، کاربر می تواند از Copy و Paste برای انتقال کاراکتر های غیر مجاز استفاده کند.
اگر فقط اینکار را در Change انجام دهیم، کاراکترهای غیر مجاز ابتدا به متن اضافه می شوند و سپس دوباره حذف خواهند شد

 

که باعث پر پر زدن TextBox و جابجایی بی مورد مکان 
 
نما (Cursor) می شود.

کد:


 

Private Const CharSet As String = "0123456789"

Private Sub Text1_Change()
    Dim Pos As Long, Str As String, Text As String
    Dim SelStart As Long
    With Text1
        Text = .Text
        SelStart = .SelStart
        For Pos = 1 To Len(Text)
            If InStr(CharSet, Mid(Text, Pos, 1)) > 0 Then
                Str = Str & Mid(Text, Pos, 1)
            End If
        Next
        .Text = Str
        .SelStart = SelStart
    End With
End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer)
    If InStr(CharSet, Chr(KeyAscii)) = 0 Then KeyAscii = 0
End Sub


در این کدی که من نوشتنم، ما فرض می کنیم که نام TextBox ما Text1 است و می خواهیم کاراکترهای 0 الی 9
قابل قبول باشند. شما می توانید هر کاراکتر دیگری را هم که قابل قبول است به عبارت رشته ای CharSet اضافه کنید.

 



💬 نظرات کاربران
💬ثبت نام کاربران
💬ورود کاربران