PDA

View Full Version : سوال: چه جوری در textbox فقط عدد قرار بگیره ؟



saeed-213
پنج شنبه 10 مرداد 1387, 09:01 صبح
سلام دوستان
چه کار کنم که text box برنامه فقط عدد یا فقط حروف قبول کنه و در غیر اینصورت پیغام خطا بده

noorsoft
پنج شنبه 10 مرداد 1387, 09:37 صبح
با اینکه این مسئله بارها در این انجمن جواب داده شده و حتی نمونه کد هم قرار داده شده
شما باید در KeyPress کلیدهایی که میخواین را فیلتر کنین مثلا



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



البته برای اینکار راههای زیادی وجود داره که این یکی از اونهاست

.:KeihanCPU:.
پنج شنبه 10 مرداد 1387, 14:37 عصر
اینم راه استانداردش


If Not IsNumeric(Text1.Text) Then
MsgBox "Just Integer"
End If

roomezonline
جمعه 11 مرداد 1387, 01:17 صبح
سلام دوستان
چه کار کنم که text box برنامه فقط عدد یا فقط حروف قبول کنه و در غیر اینصورت پیغام خطا بده


شما می تونید در خاصیت Change تکست باکس با فرض (text1) خود کد زیر رو بنویسید

if text1.text<0 or text1.text>9 then
msgbox("data no Numric")' har chiz dost dari benvis
end if

Mostafa

mahmood3d
یک شنبه 27 مرداد 1387, 21:03 عصر
شما می تونید در خاصیت Change تکست باکس با فرض (text1) خود کد زیر رو بنویسید

if text1.text<0 or text1.text>9 then
msgbox("data no Numric")' har chiz dost dari benvis
end if

Mostafa

دوست عزيز با اين كار با وارد كردن عدد دوم باز هم پيغام خطا نشون مي ده چون در خاصيت Chang تكست باكس نوشتين (يعني وقتي كه تكست باكس تغيير كرد) و با وارد كردن عدد دوم عدد داخل تكست باكس بزرگتر از 9 ميشه و پيغام خطا نمايش داده ميشه .

roze_abi-r
یک شنبه 27 مرداد 1387, 21:07 عصر
این هم یه نمونه دیگه

Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii >= 48 And KeyAscii <= 57 Or KeyAscii = 8 Then
KeyAscii = KeyAscii
Else
KeyAscii = 0
End If
End Sub
Private Sub Text2_KeyPress(KeyAscii As Integer)
If KeyAscii >= 48 And KeyAscii <= 57 Or KeyAscii = 8 Then
KeyAscii = 0
Else
KeyAscii = KeyAscii
End If
End Sub

hrj1981
یک شنبه 27 مرداد 1387, 22:13 عصر
اينهم يك روش ديگر با IsNumeric:

If IsNumeric(text1.text) = True Then
...دستوراتي كه بعد از درست بودن مقدار داخل تكس باكس اجرا شود
Else:
msgbox ("خطا در نوع داده ورودي")
end if

Pr0grammer
دوشنبه 28 مرداد 1387, 01:09 صبح
بهتر بود قبل از ایجاد تاپیک یه جستجو می کردید تا انقدر پست های تکراری ایجاد نشه!!!!

به جای کد نویسی می تونید از ابزار IntTextBox که در این لینک زیر هست استفاده کنید :
http://barnamenevis.org/forum/showthread.php?t=116848

DoctorJay
دوشنبه 28 مرداد 1387, 02:30 صبح
اینم یه راه فوق العاده مبتدیانه :


Private Sub Text1_Change()
On Error GoTo l1
Val (Text1.Text) + 0
GoTo l2
l1:
Text1.Text = Empty
l2:
End Sub


ولی جواب میده .........

roze_abi-r
چهارشنبه 13 خرداد 1388, 15:36 عصر
شما میتونید از این کد استفاده کنید


Private Sub Text1_KeyPress(KeyAscii As Integer)
If (KeyAscii >= 48 And KeyAscii <= 57) Or KeyAscii = 8 Then
KeyAscii = KeyAscii
Else
KeyAscii = 0
End If
End Sub


KeyAscii های 48 تا 57 کدهای اعداد بین 0 تا 9 هستند که میتونید بر عکس این رو هم به کار ببرید
یعنی Text1 فقط حروف رو قبول کنه

برای این کار هم از کد زیر استفاده کنید


Private Sub Text1_KeyPress(KeyAscii As Integer)
If (KeyAscii >= 48 And KeyAscii <= 57) Then
KeyAscii = 0
Else
KeyAscii = KeyAscii
End If
End Sub