PDA

View Full Version : سوال: روال text_keypress



alix58
چهارشنبه 19 آبان 1389, 13:43 عصر
باسلام خدمت دوستان عزيز:
من ميخوام در روال Text_keypress وقتي دكمه ها مانند + يا - و يا * و / را مي زنيم علامت مورد نظر رو در قسمت textbox تايپ نكنه و فقط كد اسكي اون دكمه رو بگيره و بر اساس اون عمل كنه.
ضمنا" اين مورد رو براي برنامه ماشين حساب مي خوام.:خجالت:
چون مختواي textbox رو در مرحله دوم به يك متغيير ميده در صورت تايپ علامت كد اسكي اون علامت رو هم بعلاوه عدد ميگيره كه موجب Error دادن برنامه ميشه.
از راهنماييهايي كه در اين مورد مي كنيد ممنونم.....:قلب:

returnx
چهارشنبه 19 آبان 1389, 14:32 عصر
کد اسکی + برابر 43 و - برابر 45 و * برابر 42 و / برابر 47 هست شما می تونید شرط رو به اینصورت بنویسید:

Dim sign As String
Dim num As Integer
If KeyAscii = 43 Then
sign = "+"
num = Val(Mid(Text1.Text, 1, Len(Text1.Text)))
Text1.Text = Empty
End If
بقیش هم که مشخصه...
البته شما میتونید همین کار رو در رویداد KeyUp هم بنویسید تا Textbox هم خالی بشه به اینصورت:

Dim sign As String
Dim num As Integer
If KeyCode = 107 Then
sign = "+"
num = Val(Mid(Text1.Text, 1, Len(Text1.Text)))
Print num
Text1.Text = Empty
End If

mpmsoft
چهارشنبه 19 آبان 1389, 16:49 عصر
نیازی به این کارها نیست


Private sub Text1_KeyPress (.....)

'To do
KeyAscii = 0
End Sub

amirsadeghi
شنبه 29 آبان 1389, 01:39 صبح
خب شما میتونین یکی یکی کاراکتر هارو بخونین و اول ببینین تو رنج اعداد هست یا نه
بعد اگه نبود بررسی کنین که کدوم یکی از کاراکتر هاست
نیازی هم به دونستن کد اسکی نیست.کافیه با خود کاراکتر مقایسشون کنی.
بعد هم اگه غیر عدد هرچی بود جاش یه کاراکتر نول یا " " چاپ کن...