PDA

View Full Version : فرمت کردن مستقیم textBox



hamed_bostan
شنبه 10 اردیبهشت 1384, 11:02 صبح
سلام
من یه برنامه دارم که باید از کاربر مبلغ بگیره از طریق تکست باکس اما نمی دونم چطوری این تکست باکس رو دستکاری کنم که وقتی کاربر می زنه : 125000000 براش همون موقع که می زنه به این شکل عدد وارد تکست باکس بشه : 125,000,000 در اصل می خوام خود به خود تکست باکسم بین هر سه عدد یا هر چند عدد کاما بندازه . چطوری باید از دستور فرمت یا .. براش استفاده کنم. ممنون می شم یه کد یا .. برای راهنماییم بذارین

sh
شنبه 10 اردیبهشت 1384, 14:44 عصر
میتونی از maskedbox استفاده کنی

یاشار سابق
شنبه 10 اردیبهشت 1384, 15:29 عصر
یک راه حل اینه که از Masked Edit Box استفاده کنید:

روی ToolBox زبانه Genral رو انتخاب کنید، کلیک راست، از منویی که باز میشه Add/Remove Items رو کلیک کنید، از پنجره‌ای که باز می‌شه زبانه COM Component رو انتخاب کنید ( کمی صبر کنید ) و بعد از لیستی که دیده می‌شه Microsoft Masked Edit Box رو انتخاب کنید و دکمه Ok رو بزنید.

کنترلی که اضافه شده رو روی فرمتون بندازین و خاصیت Mask اونو به ###,###,### تغییر بدین.

پ.ن : بهتره آدم قبل از پست کردن یه Refresh بکنه !

علیرضا مداح
شنبه 10 اردیبهشت 1384, 17:48 عصر
سلام .
یک راه استفاده از Microsoft Masked Edit Control میباشد و راه دیگر :


Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
If TextBox1.Text <> "" Then
TextBox1.Text = Format(TextBox1.Text, Nothing)
TextBox1.Text = Format(CDbl(TextBox1.Text), "##,0")
TextBox1.Select(TextBox1.Text.Length, 1)
End If
End Sub

hamed_bostan
شنبه 10 اردیبهشت 1384, 23:10 عصر
واقعا ممنونم از همگی

bashir_nashi
جمعه 10 تیر 1384, 19:06 عصر
آقای مداح از روش مفیدی که بیان کردید متشکرم .
میشه این کد رو طوری تکمیل کرد که از ورود کارکتر جلوگیری کنه ؟
در حال حاضر اگه کارکتر غیر عددی بخواد وارد بشه با ارور خارج میشه .
متشکرم.

sh
جمعه 10 تیر 1384, 20:05 عصر
توی رویداد KeyPress از ورود کاراکترهای مورد نظر جلوگیری کن

اگر سرچ کنی قبلا کدش رو نوشتم

علیرضا مداح
شنبه 11 تیر 1384, 00:20 صبح
میشه این کد رو طوری تکمیل کرد که از ورود کارکتر جلوگیری کنه ؟
در حال حاضر اگه کارکتر غیر عددی بخواد وارد بشه با ارور خارج میشه .
متشکرم.
راه اول :


Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
If Char.IsNumber(e.KeyChar) = False Then
e.Handled = True
Else
e.Handled = False
End If
End Sub
راه دوم :


Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
Dim intKey As Char = e.KeyChar
If Not ((intKey >= "0" And intKey <= "9") Or intKey = Chr(System.Windows.Forms.Keys.Back) Or intKey = Chr(System.Windows.Forms.Keys.Delete)) Then
e.Handled = True
Else
e.Handled = False
End If
End Sub

sh
شنبه 11 تیر 1384, 00:32 صبح
البته یادت باشه کلیدهای Delete و Backspace رو فیلتر نکنی

ostoureh
شنبه 12 اسفند 1385, 19:31 عصر
آقای مداح
ببخشید
اگه از وسط مبلغ ، بخوایم وارد کنیم نمیشه
امتحان کنید

farazjoonam
دوشنبه 28 اسفند 1385, 00:38 صبح
از این استفاده کن
Private Sub TextBox1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyUp
Try
Me.TextBox1.Text = Format(CLng(Me.TextBox1.Text), "###,###,###,###,###;;0")
Me.TextBox1.SelectionStart = Me.TextBox1.Text.Length
Catch
Exit Try
End Try
End Sub

ashalove
چهارشنبه 14 مهر 1389, 11:29 صبح
سلام
خدا پدر مایکروسافت و بیل گیتس و بیامورزه که همه این کارو خیلی راحت کرده. با تابع Format میتونی اینکارو بکنی.:افسرده: