PDA

View Full Version : سوال: تعريف فرمت خاص براي textbox



safasoft
شنبه 26 مرداد 1387, 11:52 صبح
سلام
من ميخواهم در textbox ها مقادير عددي بريزم و مي خواهم در زمان ورود اعداد بين هر سه رقم علامت (،) قرار بگيرد .
از راهنمايي شما ممنون ميشم .

morteza_261
شنبه 26 مرداد 1387, 12:40 عصر
سلام
با یک جستجو در این مورد کلی تایپک و مثال پیدا میشه

ایام به کام

saied_genius
شنبه 26 مرداد 1387, 20:39 عصر
Private Sub TextBox1_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
If Not Char.IsNumber(ChrW(AscW(e.KeyChar))) Then

e.Handled = True

End If

If (TextBox1.Text.Replace(",", "").Length >= 3) And ((TextBox1.Text.Replace(",", "").Length Mod 3) = 0) Then

TextBox1.Text += ","

TextBox1.Select(TextBox1.Text.Length, 0)
End If

End Sub

موفق باشيد

kablayi
دوشنبه 28 مرداد 1387, 02:42 صبح
سلام ...
دوست عزیز کدی رو که گذاشتین برعکس جدا میکنه ... یعنی به جای اینکه از راست سه رقم سه رقم جدا کنه از چپ جدا میکنه ...

elmira_63
دوشنبه 28 مرداد 1387, 09:19 صبح
خوب چرا از maskedtextbox استفاده نمی کنی؟؟

mostafaaa
دوشنبه 28 مرداد 1387, 12:09 عصر
خوب چرا از maskedtextbox استفاده نمی کنی؟؟
MaskedTextBox هم از سمت چپ جدا میکنه.

mostafaaa
دوشنبه 28 مرداد 1387, 12:28 عصر
سلام
من ميخواهم در textbox ها مقادير عددي بريزم و مي خواهم در زمان ورود اعداد بين هر سه رقم علامت (،) قرار بگيرد .
از راهنمايي شما ممنون ميشم .
از این کد میتونی استفاده بکنی

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
If TextBox1.Text <> "" And IsNumeric(TextBox1.Text) Then
TextBox1.Text = FormatNumber(TextBox1.Text, 0)
TextBox1.SelectionStart = TextBox1.TextLength
End If
End Sub

safasoft
دوشنبه 28 مرداد 1387, 14:16 عصر
با سلام
از راهنماييتون ممنونم . اما maskedtextbox در با فارسي شدن صفحه مشكل دار ميشه يعني مجبور ميشي از تاريخ را از راست به چپ maskedtextbox و به صورت اول سال بعد ماه و بعد روز را وارد كني .
آيا راه حلي براي تصحيح وجود دارد .

morteza_261
دوشنبه 28 مرداد 1387, 14:34 عصر
'TxtGest1.Text = Format(Val(TxtGest1.Text.Trim.Replace(",", "")), "#,0")
'TxtGest1.SelectionStart = TxtGest1.TextLength

safasoft
دوشنبه 28 مرداد 1387, 14:40 عصر
از این کد میتونی استفاده بکنی

کد:
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged If TextBox1.Text <> "" And IsNumeric(TextBox1.Text) Then TextBox1.Text = FormatNumber(TextBox1.Text, 0) TextBox1.SelectionStart = TextBox1.TextLength End If End Sub
__________________

از راهنماييتون ممنونم . آيا ممكن از تابع FormatCurrency براي تاريخ استفاده كرد و اگه ميشه به چه شكلي از اين تابع استفاده كنيم .

ali_md110
سه شنبه 29 مرداد 1387, 00:27 صبح
به این تکه کد هم نگاه بیدازید بدرد میخوره

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
Dim str As String = ""
If TextBox1.Text.Length > 3 Then
SendKeys.Send("{end}")
str = Format$(TextBox1.Text.Replace(",", ""))
TextBox1.Text = Format$(Val(str), "###,###,###")

End If
End Sub

mostafaaa
سه شنبه 29 مرداد 1387, 09:41 صبح
از راهنماييتون ممنونم . آيا ممكن از تابع FormatCurrency براي تاريخ استفاده كرد و اگه ميشه به چه شكلي از اين تابع استفاده كنيم .من متوجه نشدم که شما با تاریخ چه کار میخای بکنی. ولی برای تاریخ هم میتونی از تابع Format به این شکل استفاده کنی.

Format(Date.ToDay, "yyyy/MM/dd")