ورود

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 <> &quot;&quot; Then
Text2.Text = Format(Text2.Text, &quot;##,0&quot;)
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