View Full Version : جدا کدن اعداد به صورت سه رقم سه رقم در Textbox
mpmsoft
سه شنبه 04 اردیبهشت 1386, 11:40 صبح
دوستان من چطوری می تونم تو Textbox اعدادو زمانی که تایپ می کنن سه رقم سه رقم به صورت خودکار جدا بشه
البته من با MaskEdit این کارو کردم ولی MaskEdit راست به چپو پشتیبانی نمی کنه و اعداد به صورت لاتین تایپ میشه
perfeshnal
سه شنبه 04 اردیبهشت 1386, 13:42 عصر
سلام
این کد رو در رویداد Change تکس باکس بزار
If Text2.Text <> "" Then
Text2.Text = Format(Text2.Text, "##,0")
Text2.SelStart = Len(Text2.Text)
End If
Belial
سه شنبه 04 اردیبهشت 1386, 16:10 عصر
سلام
این کد رو در رویداد Change تکس باکس بزار
If Text2.Text <> "" Then
Text2.Text = Format(Text2.Text, "##,0")
Text2.SelStart = Len(Text2.Text)
End If
نمی دونم مشکل از من هست یا نه اما محدودیت داره 3-4 بار از 1 تا 9 برید کلی صفر اضافه می کنه .....
Armin62
سه شنبه 04 اردیبهشت 1386, 17:03 عصر
این فرمان تا 29 رقم مشکلی نداره (بسه دیگه مگه میخوای چیو حساب کنی) البته فکر کنم با تغییراتی بیشتر هم میشه.
perfeshnal
سه شنبه 04 اردیبهشت 1386, 21:36 عصر
سلام
به قول Armin62 می خوای مگه باهاش چکار کنی ؟:متفکر:
Peter Norton
پنج شنبه 06 اردیبهشت 1386, 20:55 عصر
مشکل این کد اینه که اگه بخواهی وسط اعداد عددی وارد کنی به انتای تمامی اعداد می روی و دوباره باید برگدی عدد بعدی رو سرجاش بزنی. اگه یه ذخیره کننده محل قبلی رو هم بهش اضافه کنی تا حد خوبی قابل قبول میشه.
perfeshnal
پنج شنبه 06 اردیبهشت 1386, 22:39 عصر
من که منظور شما رو متوجه نشدم میشه بیشتر توضیح بدید ؟
Armin62
پنج شنبه 06 اردیبهشت 1386, 22:59 عصر
منظور ایشون این خطه
Text2.SelStart = Len(Text2.Text)
rsl_rostami
شنبه 22 اردیبهشت 1386, 19:40 عصر
فقط مشکلی که هست:
text2.text=123,456,789 ====> val(text2.text)=123
farzadvb
یک شنبه 23 اردیبهشت 1386, 06:27 صبح
دوست عزیز از این تابع استفاده کن از هر نمونه که خواستی برات تولید میکنه هیچ مشکلی هم نداره:
Public Function MaskText(txtTarget As VB.TextBox, strMask As String)
Static bolRunning As Boolean
If bolRunning Then
Exit Function
End If
bolRunning = True
Dim strTarget_Text As String
strTarget_Text = txtTarget.Text
Dim lngCursor_Pos As Long
lngCursor_Pos = txtTarget.SelStart
If Len(strMask) > Len(strTarget_Text) Then
strTarget_Text = strTarget_Text & Space(Len(strMask) - Len(strTarget_Text))
ElseIf Len(strMask) < Len(strTarget_Text) Then
strTarget_Text = Left(strTarget_Text, Len(strMask))
ElseIf Len(strMask) = 0 Then
Exit Function
End If
Dim strTarget_Char As String * 1
Dim strMask_Char As String * 1
Dim strTemp As String
Dim bolAlpha As Boolean
Dim aryLiterals As Variant
aryLiterals = Array("(", ")", "-", ".", ",", ":", ";", "/", "\", " ")
Dim lngLiteral_Index As Long
Dim bolLiteral As Boolean
Dim lngChar_Index As Long
For lngChar_Index = 1 To Len(strMask)
strTarget_Char = Mid(strTarget_Text, lngChar_Index, 1)
strMask_Char = Mid(strMask, lngChar_Index, 1)
For lngLiteral_Index = LBound(aryLiterals) To UBound(aryLiterals)
bolLiteral = (strMask_Char = aryLiterals(lngLiteral_Index))
If bolLiteral Then
Exit For
End If
Next lngLiteral_Index
Select Case strMask_Char
Case "#":
If (Not IsNumeric(strTarget_Char)) And (strTarget_Char <> " ") Then
strTemp = Right(strTarget_Text, Len(strTarget_Text) - lngChar_Index)
If lngChar_Index > 1 Then
strTarget_Text = Left(strTarget_Text, lngChar_Index - 1)
Else
strTarget_Text = ""
End If
strTarget_Text = strTarget_Text & " " & strTemp
End If
Case "@":
bolAlpha = ((Asc(strTarget_Char) >= 65) And (Asc(strTarget_Char) <= 90)) Or ((Asc(strTarget_Char) >= 97) And (Asc(strTarget_Char) <= 122))
If (Not bolAlpha) And (strTarget_Char <> " ") Then
strTemp = Right(strTarget_Text, Len(strTarget_Text) - lngChar_Index)
If lngChar_Index > 1 Then
strTarget_Text = Left(strTarget_Text, lngChar_Index - 1)
Else
strTarget_Text = ""
End If
strTarget_Text = strTarget_Text & " " & strTemp
End If
Case Else:
If (strTarget_Char <> strMask_Char) And bolLiteral Then
strTemp = Right(strTarget_Text, Len(strTarget_Text) - (lngChar_Index - 1))
strTarget_Text = Left(strTarget_Text, lngChar_Index - 1)
strTarget_Text = strTarget_Text & strMask_Char & strTemp
If lngChar_Index = lngCursor_Pos Then
lngCursor_Pos = lngCursor_Pos + 1
End If
End If
End Select
Next lngChar_Index
txtTarget.Text = Left(strTarget_Text, Len(strMask))
txtTarget.SelStart = lngCursor_Pos
bolRunning = False
End Function
rsl_rostami
پنج شنبه 03 خرداد 1386, 22:03 عصر
میشه بگین چه چوری از این تابع استفاده کنم؟
rsl_rostami
جمعه 11 خرداد 1386, 12:20 عصر
جناب farzadvb میشه راهنمایی کنید؟
Armin62
دوشنبه 14 خرداد 1386, 11:28 صبح
به جای Val از این استفاده کن
Replace("123,456,789", ",", "")
hoseyntaghizadeh
جمعه 02 آبان 1399, 10:00 صبح
سلام چه طور میشه توی textbox بین اعداد را با خط فاصله جدا کرد
the king
جمعه 02 آبان 1399, 10:27 صبح
سلام چه طور میشه توی textbox بین اعداد را با خط فاصله جدا کرد
Dim n As Long, s As String
n = 1234567
s = Replace(Format(n, "#,###"), Mid(Format(1000, "#,###"), 2, 1), "-")
MsgBox s
www.pc3enter.tk
جمعه 02 آبان 1399, 18:06 عصر
البته اینجوری هم تو تکس باکس میتونی استفاده کنی
حالا بین
zz+1
zz+0
فرق هست
Private Sub Text1_Change()
n = Replace(Text1.Text, ",", "")
zz = Text1.SelStart
Text1.Text = Replace(Format(n, "#,###"), Mid(Format(1000, "#,###"), 2, 1), ",")
Text1.SelStart = zz + 1
End Sub
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.