شما برای محدود کردن کاراکتر هایی که صفحه کلید در TextBox وارد می کند بایستی در داخل رخداد KeyPress و
Change، کاراکترهای غیر مجاز را فیلتر کنید.
اگر فقط اینکار را در KeyPress انجام دهید، کاربر می تواند از Copy و Paste برای انتقال کاراکتر های غیر مجاز استفاده کند.
اگر فقط اینکار را در Change انجام دهیم، کاراکترهای غیر مجاز ابتدا به متن اضافه می شوند و سپس دوباره حذف خواهند شد
کد:
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 اضافه کنید.
.: Weblog Themes By Pichak :.