ورود

View Full Version : سوال: چکار باید کرد ، تنها از صفحه کلید ، عدد دریافت کند و حروف ویا سمبل دیگه ای رو دریافت نکند



backstreet-boy
دوشنبه 24 تیر 1387, 18:28 عصر
چکار باید کرد . تا کاربر در input box و یا هر شی دیگری که بر روی فرم ، ورودی دریافت می کند ، تنها از صفحه کلید ، عدد دریافت کند و حروف ویا سمبل دیگه ای رو دریافت نکند . اگه می شه کدشو این جا بزارین ؟

مهدی فرزاد
دوشنبه 24 تیر 1387, 20:16 عصر
سلام
يه سري به اين لينك بزن حتما جواب مي گيري. موفق باشيhttp://barnamenevis.org/forum/showpost.php?p=414433&postcount=76

Evil 69
سه شنبه 25 تیر 1387, 08:42 صبح
بهترين راه براي اين كار چك كردن كد هاي اسكي هست با اين كار ميتوني كاري كني كه فقط اسكي هايي رو برنامه پردازش كنه كه مربوط به عدد باشن

saman_itc
سه شنبه 25 تیر 1387, 10:44 صبح
تو key peres این کد بنویس


Private Sub TextBox5_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox5.KeyPress
If (Char.IsNumber(e.KeyChar) <> True) Then
e.Handled = True
End If
If (Char.IsPunctuation(e.KeyChar)) Then
e.Handled = True
End If
End Sub

morteza_261
سه شنبه 25 تیر 1387, 12:21 عصر
تو key peres این کد بنویس


Private Sub TextBox5_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox5.KeyPress
If (Char.IsNumber(e.KeyChar) <> True) Then
e.Handled = True
End If
If (Char.IsPunctuation(e.KeyChar)) Then
e.Handled = True
End If
End Sub


سلام
فکر میکنم کد شما یه مشکلی داشته باشه،اینجوری دیگه BackSpace هم از کار میفتاد

روح اله معینی زاده
سه شنبه 25 تیر 1387, 13:55 عصر
سلام
اگه تعداد عددي كه مي خواد وارد كنه از قبل مشخصه كه از Maskedit استفاده كنيد(اگه اسمش رو اشتباه نوشتم ببخشيد) در غير اين صورت استفاده از Select Case رو به شما توصيه مي كنم.
براي كليد BackSpace هم مي توانيد از كد 8 در اين دستور استفاده نماييد.


select case asc(e.keychar)
case 48 to 57
case 8
case else
e.handled = true
end select
اميدوارم درست نوشته باشم چون كد رو تست نكردم ولي قبلاً كه اين طوري مي نوشتم.

در ضمن اين كد را بايد در همان روال key_press بنويسيد
با احترام- روح اله معيني زاده

saman_itc
سه شنبه 25 تیر 1387, 14:40 عصر
کارت راه افتاد؟نیازی به تشکر نبود
این خط به اولش اضافه کن
فکر نمیکنم کاری داشت
if asc(e.keychar)= 8 then exit sub

backstreet-boy
سه شنبه 25 تیر 1387, 15:50 عصر
سلام ، به همه با معرفتا ، ولی مرتضی-261 اگه می شه یه توضیحی بده کدت چکار می کنه ؟



Private Sub TextBox5_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox5.KeyPress
If (Char.IsNumber(e.KeyChar) <> True) Then
e.Handled = True
End If
If (Char.IsPunctuation(e.KeyChar)) Then
e.Handled = True
End If
End Sub

morteza_261
سه شنبه 25 تیر 1387, 17:13 عصر
سلام ، به همه با معرفتا ، ولی مرتضی-261 اگه می شه یه توضیحی بده کدت چکار می کنه ؟



Private Sub TextBox5_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox5.KeyPress
If (Char.IsNumber(e.KeyChar) <> True) Then
e.Handled = True
End If
If (Char.IsPunctuation(e.KeyChar)) Then
e.Handled = True
End If
End Sub

سلام
اون کد من نبود،فقط یه اشکالی داشت کدش که گفتم و saman_itc هم درستش کرد
در اصل اون کد رو saman_itc داده بود که BackSpace کار نمیکرد که با کدی که در پست قبلی گذاشت مشکل برطرف شد:


If Asc(e.KeyChar) = 8 ThenExitSub
If (Char.IsNumber(e.KeyChar) <> True) Then
e.Handled = True
EndIf
If (Char.IsPunctuation(e.KeyChar)) Then
e.Handled = True
EndIf


راستی تو صفحه دوم پست قبلی یه برنامه گزاشته بودم مثل اینکه ندیدی
با این کدا کارت درست میشه ولی اون برنامه رو هم ببین شاید بعدا بدردت خورد

HOSSINKEY
شنبه 06 مهر 1387, 04:44 صبح
از ماسکت تکست
:متعجب: استفاده کن شاید کارتو راه بیندازه