PDA

View Full Version : آموزش: تکست باکس تخصصی جهت مقادیرمالی



Abbas Amiri
شنبه 14 مرداد 1391, 19:01 عصر
جهت سهولت هرچه بیشتر درتایپ ارقام ، استفاده ازکدهای زیر برا ی دو رویدادtext_Change و text_Keydown محیط را کاربرپسندتر وحرفه ای تر می کند. بغیراز دزج همزمان کاما جهت جداسازی هزارگان اعداد ، تخصیص کلید + جهت درج سه صفر "000" و ممیز "." جهت دوصفر "00"، در قسمت Numeric Pad ، همچنین Delete جهت پاک کردن کل عدد و بی تاثیر ساختن کلیدهای نامربوط (به استثنای Home, End, Arrow Keys, Insert, BackSpace) از ویژگیهای استفاده از این کدهااست


Private Sub txtAmount_Change()
Dim s As String
s = txtAmount.Text
txtAmount.Format = "Standard"
txtAmount.SelStart = Len(s) + 1
If s = "" Then txtAmount = "0"
End Sub

Private Sub txtAmount_KeyDown(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case vbKeyAdd
txtAmount = txtAmount.Text & "000"
txtAmount_Change
Case vbKeyDecimal
txtAmount = txtAmount.Text & "00"
txtAmount_Change
Case vbKeyDelete
txtAmount = "0"
Case vbKeyBack, 48 To 57, 96 To 105, 35 To 40,vbKeyHome, vbKeyInsert, vbKeyEnd, vbKeyReturn
Case Else
KeyCode = 0
End Select
End Sub


لازم به توضیح است که یک تابع هم جهت این موضوع ساخته ام که فقط در روال KeyDown فراخوانی میشود ومشابه کارفوق را انجام میدهد ، ام فقط درانتهای رشته عملیات انجام میدهد ودرمیان اعداد کارایی ندارد.

salambeshoma
شنبه 14 مرداد 1391, 19:27 عصر
واقعا ممنون ... تشکر فراوان از شما استاد محترم

emami.sie
یک شنبه 15 مرداد 1391, 06:58 صبح
با سلام خدمت استاد عزیز
من هم به نوبه خودم از زحمات ایشون کمال تشکر رو دارم و از اینکه میبینم تقریبا یک تنه دارن به اکثر سئوالات دوستان پاسخ میدن خیلی خوشحالم... (خوشحال بخاطر حضور ایشون در این سایت و این تالار)
امیدوارم همینطور خستگی ناپذیر به آموزش ما ادامه بدن و سایه شون بالاسر این تالار باشه... (واقعا وجود ایشون در این اوضاع که هیچ مدیری یا مدبری احوالی از این تالار نمیپرسه، مایه دلگرمیه)
به امید روزهای بهتر
یا علی

Abbas Amiri
سه شنبه 17 مرداد 1391, 22:14 عصر
با سلام ، نمونه در ذیل تقدیم می شود:

Abbas Amiri
سه شنبه 17 مرداد 1391, 22:36 عصر
با فرمت mdb .

RESMAILY
چهارشنبه 18 مرداد 1391, 08:30 صبح
به نام خدا
با سلام . اقاي اميري امتحان بفرماييد كه اگر بخواهيد عدد نوشته شده را با Backspace تصحيح كنيم چه اتفاقي مي افتد.
حقيقت آنكه من از روش مشابهي (نه به كاملي مال شما) در برنامه هايم استفاده كرده ام و هميشه با اين مشكل روبرو بودم. البته در برنامه شما وضع بهتر است ولي ظاهرا در اين مواقع در فرمت اعداد اشكالي ايجاد مي شود. من در كار خودم ناچارا در پايان عدد نويسي يك refresh اعمال مي كنم. ولي شما به راه اصلي نزديك شده ايد و لذا نگاهي بيندازيد. ببخشيد

Abbas Amiri
چهارشنبه 18 مرداد 1391, 16:56 عصر
از فایل ضمیمه پست 7 استفاده کردم ومشکلی نبود .وفرمت استاندارد در BackSpace درست بود