با سلام
خاصیت ماسک ادیت باکس در کنترل الگوی ورودی هست .
مثلا تاریخ - ساعت - کد پستی و ...
برای تعریف الگوی تاریخ از عبارتی مثل زیر استفاده میکنیم :
####/##/##
که هر علامت شارپ (#) به معنی یک عدد صحیح هست و هر ممیز (/) بصورت ثابت در الگو تعریف شده است .
وقتی کاربر مقداری در ماسک ادیت باکس وارد می کنه اون مقدار همراه با مقادیر ثابت تعریف شده در الگو ثبت میشه .
صورت مسئله :
مشکل وقتی پیش میاد که شما از ماسک ادیت باکس برای جدا کردن 3رقم 3رقم اعداد بزرگ اتفاده می کنین :
###،###،###
که عددی مثل 123456789 رو بصورت 123،456،789 نشون بده و هنگام خواندن مقدار بصورت رشته کاراکتری (نه عددی) بهتون برگردونده میشه و اگه از تابع Val استفاده بکنین مقدار بازگشتی قسمت صحیح رشته خواهد بود یعنی فقط مقدار 123 بهتون برگردونده میشه .
راه حل :
قبل از خواندن مقدار ماسک ادیت باکس باید تمام کاراکتر های ثابت تعریف شده در الگو حذف شود .
کد:
calc =val( replace (maskedbox1.text,",",""))
پی نوشت :
اگر مشکل شما اونی نبود که توضیح دادم، دقت کنین که سرریز داده در متغییر نوع عدد صحیح بوجود نیومده باشه .
حد اکثر مقدار قابل ثبت در متغییر از نوع عدد صحیح هست : 32767
برای اعداد بزرگتر از نوع LONG استفاده کنین که در محدوده زیر هست :
-2,147,483,648 تا 2,147,483,647
برای اطلاعات بیشتر در مورد متغییرها به آدرس زیر سر بزنید :
کد:
https://msdn.microsoft.com/en-us/library/aa263420(v=vs.60).aspx