PDA

نسخه کامل مشاهده نسخه کامل : مي خواهم يك Textbox درست كنم كه فقط بشه توش عدد وارد كرد



aliarc2003
23-06-2006, 14:57
سلام

مي خواهم يك Textbox درست كنم كه فقط بشه توش عدد وارد كرد يعني وقتي حروف تايپ كنم داخل اون نوشته نشه .

Payman_62
23-06-2006, 20:40
تو رویداد keypress چک کن هر چی اسکیش بین یا مساوی 48 و 57 نبود اسکیشو 0 کن.

sAsAn.K
23-06-2006, 20:44
بهترین روش همینه که پیمان جون گفتن:).

A_M_IT2005
29-06-2006, 00:41
سلام
البته روش اصلی همونی هست که پیمان جان گفتند
ولی من با تابع isnumeric این کارو می کنم.
مثلا :
If IsNumeric(Text1.Text) = False Then Text1.Text = ""
این کد در خاصیت change text نوشته میشه.

moj101
29-06-2006, 00:52
سلام
اين هم يك راه حل ديگه
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
درسته كه ايشون جواب سوالش رو گرفته و تاپيك مربوط به چند ماه قبل است ولي يك سوال ممكنه چندين جواب داشته باشه و بقيه كاربرها بخوان روشهاي ديگه رو هم بدونند.اين كدي كه من نوشتم با بقيه فرق مي كنه دوست عزيز

kbdfa
04-01-2007, 09:22
با سلام
فكر كنم اينم جواب بده من خودم هم استفاده ميكنم
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