سلام دوستان , امروز می خوام یه مطلب کاربردی تو VB رو براتون بگم که شاید خیلی به کارتون بیاد این کد شاید براتون تو برنامه هایی که باید از ورودی مقدار خاصی رو بگیرید مثلا می خواهید از ورودی فقط یک مقدار عددی رو بگیرید و بعد اون رو تو محاسبات استفاده کنید و اگر کاربر مثلا در ورودی 788در12 را تایپ کنه برنامه Error میده خوب برای رفع این مشکل می شه از ورودی فقط عدد گفت یعنی در صورتی که کاربر فقط اعداد 0 تا 9 رو تایپ کنه در ورودی نمایش داده می شه این هم حلال این مشکل .
خوب این کد رو بهتر که در رویداد Keypress کنترل مورد نظر خود ( از جمله Textbox , Rich Textbox , Inputbox و ... ) بنویسید که به محض فشرده شدن هر کلید از سوی کاربر این قسمت چک می شود .
Private Sub TextBox_KeyPress(KeyAscii As Integer)
'=============================================
Dim StrValid As String
StrValid = "0123456789"
If InStr(StrValid, Chr(KeyAscii)) = 0 Then
KeyAscii = 0
End If
End Sub
بد نیست یه اشاره ای هم به توابع به کار رفته تو این کنم :
1. تابع Instr : یک زیررشته را در یک رشته دیگر جستجو میکند و موقعیت آنرا در رشته بر می گرداند شکل کلی این تابع به صورت زیر است :
InStr([start, ]string1, string2[, compare])
قسمت | توضیحات |
start | مکانی از رشته که جستجو باید از آنجا آغاز شود |
string1 | رشته اول |
string2 | رشته دوم |
compare | مشخص کردن نوع مقایسه که بین دو رشته انجام میشود که خود بر سه نوع vbBinaryCompare و vbDatabaseCompare و vbTextCompare می باشد |
به این مثال توجه کنید :
instr("visual basic Language","Language") ==============> عدد 14 برگردانده میشود
:: یک نکته و آن اینکه مواvدی که در شکل کلی این تابع در داخل [ ] قرار دارند اختیاری می باشند .
2. تابع Chr : این تابع کاراکتر معادل کد اسکی یک مقدار را بر می گرداند
KeyAscii : آرگومانی است که کد اسکی کلیدی از صفحه کلید را که فشرده شده بر می گرداند.