مشاهده نسخه کامل
: مي خواهم يك Textbox درست كنم كه فقط بشه توش عدد وارد كرد
aliarc2003
23-06-2006, 14:57
سلام
مي خواهم يك Textbox درست كنم كه فقط بشه توش عدد وارد كرد يعني وقتي حروف تايپ كنم داخل اون نوشته نشه .
Payman_62
23-06-2006, 20:40
تو رویداد keypress چک کن هر چی اسکیش بین یا مساوی 48 و 57 نبود اسکیشو 0 کن.
بهترین روش همینه که پیمان جون گفتن:).
A_M_IT2005
29-06-2006, 00:41
سلام
البته روش اصلی همونی هست که پیمان جان گفتند
ولی من با تابع isnumeric این کارو می کنم.
مثلا :
If IsNumeric(Text1.Text) = False Then Text1.Text = ""
این کد در خاصیت change text نوشته میشه.
سلام
اين هم يك راه حل ديگه
dim strValid as string
strValid="0123456789"
if keyAscii>26 then
if Instr(strValid,Chr(KeyAscii))= 0 then
keyascii=0
end if
end if
با اين روش كليه كليد هاي غير از اعداد ناديه گرفته مي شود
alishahbazi
03-09-2006, 11:09
با سلام
دوست عزيز شما به وسيله كد هاي زير ميتوانيد اين كار را انجام بدهيد.
در قسمت general نوشته شود
Public Function Favorites(KeyAscii As Integer)
Dim StrValid As String
StrValid = "0123456789"
If KeyAscii > 26 Then
If InStr(StrValid, Chr(KeyAscii)) = 0 Then
KeyAscii = 0
End If
End If
End Function
در قسمت دستورهاي text box نوشته شود.
Private Sub Text1_KeyPress(KeyAscii As Integer)
Favorites KeyAscii
End Sub
-----------------------------------------------------------------
عمر گران ميگذرد خواهي نخواهي
تکنیک برتر
06-09-2006, 01:09
سلام
دوست عزيز اين رو هم امتحان كن خيلي توپه نقص نداره و در همه سيستم ها قابل اجراست.
كد زير را در ما}ول قرار بده
Public Function DecControl(KeyAscii As Integer, Text As TextBox, ByVal NOOFDEC As Integer) As Integer
If KeyAscii = 8 Then
DecControl = KeyAscii
Exit Function
End If
If NOOFDEC = 0 Then
If InStr(1, "0123456789-", Chr(KeyAscii)) = 0 Then
DecControl = 0
Exit Function
Else
DecControl = KeyAscii
Exit Function
End If
Else
If InStr(1, "0123456789.-", Chr(KeyAscii)) = 0 Then
DecControl = 0
Exit Function
End If
End If
If Len(Text) - Text.SelStart > NOOFDEC And Chr(KeyAscii) = "." Then
DecControl = 0
Exit Function
End If
If KeyAscii <> 8 Then
If InStr(1, Text, ".") <> 0 And Chr(KeyAscii) = "." Then
DecControl = 0
Exit Function
End If
Dim pos As Integer
Dim RET As Integer
pos = InStr(1, Text.Text, ".")
If pos = 0 Then
If InStr(1, "0123456789.-", Chr(KeyAscii)) = 0 Then
RET = 0
Else
RET = KeyAscii
End If
Else
'IF AFTER DECIMAL
If Text.SelStart + 1 > pos Then
a = Len(Text.Text) - InStr(1, Text, ".")
If a >= NOOFDEC Then
RET = 0
Else
RET = KeyAscii
End If
Else
RET = KeyAscii
End If
End If
Else
RET = KeyAscii
End If
DecControl = RET
End Function
و كد زير را در text مورد نظرخود وارد كنيد.
Private Sub Text1_KeyPress(KeyAscii As Integer)
KeyAscii = DecControl(KeyAscii, Text1, 2)
End Sub
ممنون
Romina2006
01-01-2007, 16:35
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
Payman_62
02-01-2007, 02:35
سلام.
رومینا نیازی نیست تاپیک هایی که ماه ها پیش پروندشون بسته شده رو از آرشیو بکشی بیرون. اگه به تاریخ تاپیک توجه کنی متوجه میشی 6 ماه از عمر تاپیک میگذره و در همون موقع aliarc2003 جوابشو گرفت.
از همکاری شما جهت قرار دادن کدها داخل تگ کد تشکر میکنم.
Romina2006
02-01-2007, 19:31
درسته كه ايشون جواب سوالش رو گرفته و تاپيك مربوط به چند ماه قبل است ولي يك سوال ممكنه چندين جواب داشته باشه و بقيه كاربرها بخوان روشهاي ديگه رو هم بدونند.اين كدي كه من نوشتم با بقيه فرق مي كنه دوست عزيز
با سلام
فكر كنم اينم جواب بده من خودم هم استفاده ميكنم
Option Explicit
Private Sub Text1_KeyPress(KeyAscii As Integer)
'ONLY NUMBERS AND BACKSPACE
If IsNumeric(Chr(KeyAscii)) = False And KeyAscii <> 8 Then
KeyAscii = 0
End If
End Sub
vBulletin , Copyright ©2000-2024, Jelsoft Enterprises Ltd.