PDA

View Full Version : mask ای برای مبلغ



vahidehrafati
سه شنبه 14 تیر 1384, 17:26 عصر
سلام

من از این سایت خیلی خوشم اومده .

خیلی عالیه

از همه ممنون.

و اما سوال : می خوام textBoxای برای مبلغ داشته باشم که زمانی که کاربر مبلغ رو وارد می کنه با وارد کردن هر سه رقم یک کاما ظاهر بشه.

یعنی همزمان با وارد کردن داده ( نه قبل و نه بعد) برای هر سه رقم یک کاما ظاهر بشه

اگر کمکم کنید خیلی ممنون می شم .

PalizeSoftware
سه شنبه 14 تیر 1384, 18:43 عصر
عزیز برادر از MaskEdit استفاده کن
هر جوری خواستی فرمت بهش بده. بعنوان مثال برای عدد
###و###و###

بابک زواری
سه شنبه 14 تیر 1384, 19:26 عصر
یک نگاه هم به این بکن
http://www.barnamenevis.org/forum/viewtopic.php?t=24921


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
مال VB.NET هست اما میتونی به VBهم تبدیل بکنی

PalizeSoftware
سه شنبه 14 تیر 1384, 19:55 عصر
یک نگاه هم به این بکن
http://www.barnamenevis.org/forum/viewtopic.php?t=24921


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
مال VB.NET هست اما میتونی به VBهم تبدیل بکنی

بسیار متین فرمودند جناب زواری
اینم تبدیل شده آن کد به VB


Private Sub Text1_Change()
If Text1.Text <> "" Then
Text1.Text = Format(Text1.Text, "##,0")
Text1.SelStart = Len(Text1.Text)
End If
End Sub

vahidehrafati
چهارشنبه 15 تیر 1384, 08:20 صبح
سلام

ممنون از اینکه کمکم کردید. :flower:

اما دو سوال دیگه هم دارم .

اول اینکه : در این حالت اگر کاربر عدد 1000 را وارد کند text1.text برابر 1,000 خواهد بود بعنی مانند maskedit عمل نمی کند که "و" را بحساب نیاورد.

دوم اینکه : اما کد vb ای هست که باعث شه کاربر نتونه کاراکتر تایپ کنه ؟

PalizeSoftware
چهارشنبه 15 تیر 1384, 11:40 صبح
دوست عزیز از این به بعد اگه محتویات Text1‌رو خواستی از این دستور بگیر



Format(Text1, "")


در ضمن برای محدود کردن تایپ به وارد کردن فقط اعداد این کد رو قرار بده:


Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii < Asc("0") Or KeyAscii > Asc("9") Then
KeyAscii = 0
End If
End Sub

vahidehrafati
چهارشنبه 15 تیر 1384, 16:06 عصر
سلام

ممنون از کمکتون :reading:

خیلی کمکم کردید.

موفق باشید. :flower:

PalizeSoftware
چهارشنبه 15 تیر 1384, 16:44 عصر
خواهش می‌کنم قابلی نداشت.
:sunglass:

vb341
یک شنبه 02 مرداد 1384, 20:10 عصر
این هم یک روش دیگه :
Private Sub Text1_KeyPress(KeyAscii As Integer)

Dim strvalid As String

strvalid = "0123456789"

If KeyAscii > 26 Then 'ÈÒѐÊÑ ÇÒ 26 ÈÑÇí Çíä˜å ˜ÇÑǘÊÑåÇí 1 ÊÇ 26 ÑÇ ÝíáÊÑ ä˜äÏ
If InStr(strvalid, Chr(KeyAscii)) = 0 Then
KeyAscii = 0
End If
End If

If KeyAscii = 13 Then
KeyAscii = 0
Text1.Text = Format(Text1.Text, "#,##0")
Text2.SetFocus
End If


End Sub

h_r_ibm
چهارشنبه 02 شهریور 1384, 10:26 صبح
ممنون از کمک جنابعالی