نمایش نتایج 1 تا 8 از 8

نام تاپیک: ایجاد آپشن Digit Group برای تکست باکس ( مثل ماشین حساب ویندوز XP )

  1. #1

    ایجاد آپشن Digit Group برای تکست باکس ( مثل ماشین حساب ویندوز XP )

    سلام
    این سوال رو تاحالا چند بار به عناوین مختلف مطرح کردم ولی تمام جوابها یه طوری برای من اون جواب اصلی نبودن.همه دوستان احتمالا با ماشین حساب ویدوز xp کار کردن.گزینه ای هست به نام digit grouping که ارقام قبل از ممیز رو به صورت گروه سه تایی دسته بندی می کنه.

    key press=1 ===> textbox.text=1

    key press=2 ===> textbox.text=12

    key press=3 ===> textbox.text=123

    key press=4 ===> textbox.text=1,234

    key press=.1 ===> textbox.text=1,234.1

    دوستان عزیز توجه کنید که با هر بار وارد کردن یک رقم این دسته بندی تغییر می کند.پس از ورود ممیز اعداد بعد از ممیز دسته بندی نمی شوند.
    1,234,567.2055482245
    لطفا جوابتون رو به صورت دستوری که قراره درون text_change event نوشته بشه قرار بدید.خیلی ممنون میشم اگه کمک کنید.1 ماهه گیر همینم.

  2. #2
    کاربر دائمی آواتار tam2145
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    اصفهان
    پست
    167

    نقل قول: ایجاد آپشن Digit Group برای تکست باکس ( مثل ماشین حساب ویندوز XP )

    سلام آقا پویا
    من می تونم این سورس را برایتون بنویسم !! فقط چند تا سوال دارم :
    1- آیا می خواهید مثل ماشین حساب ویندوز ، نقطه ی ممیز اعداد نمایش داده شود ؟؟
    2- آیا بعدا خودتان می توانید سورس اعمال ریاضی این گونه اعداد را بنویسید ؟؟
    لطفا جواب این دو سوال را بدهید ....
    راستی خودم در گیرم و مشکلی دارم ، اما اگر ضروری نباشه تا آخر هفته براتون می نویسم !!

  3. #3

    نقل قول: ایجاد آپشن Digit Group برای تکست باکس ( مثل ماشین حساب ویندوز XP )

    سلام دوست عزیز....
    از توجه شما ممنون و متشکرم.ببخشید که دیر جواب دادم. تازه از کار برگشتم.
    در جواب سوالات شما :
    1-بله نقطه ممیز نشان داده شود
    2- بله .سورس رو خودم می نویسم.

    البته اگه درگیر کاری هستید فقط منو راهنمایی کنید هم خیلی ازتون ممنون میشم.

  4. #4
    کاربر دائمی آواتار tam2145
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    اصفهان
    پست
    167

    نقل قول: ایجاد آپشن Digit Group برای تکست باکس ( مثل ماشین حساب ویندوز XP )

    سلام
    خواهش می کنم ! اگه ببینم به کسی می تونم کمک کنم ، بهش کمک می کنم ، فرقی برایم ندارد که کی هست !!
    چون در گیر کاری هستم و شما هم انگار عجله دارید این نمونه پروژه را که خودم نوشتم را می گذارم :

    http://faupload.com/upload/91/Khorda...by-tam2145.rar
    در ضمن بگم که این پروژه با vb.net 2008 نوشته شده !!

    توی این برنامه ای که من گذاشتم :
    1- میاد اعداد را اینگونه فرمت دهی می کند : 1,234,567.2055482245
    2- محل قرارگیری اعداد در تکست باکس در سمت راست تکست باکس تنظیم شده است !!
    3- همزمان با تغییر ، عدد بدون قالب بندی را در اختیار شما می گذارد تا با آن اعمال ریاضی خود را انجام دهید .
    4- سریع عمل می کند !! به هر تغییری ، تکست ، آپدیت می شود !!

    مشکلات :
    1- نشانگر مکان متن حذف و یا غیر قابل نمایش نشده است !!
    2- مانند ماشین حساب ویندوز ، "." کنار اعداد ندارد !!
    3- باید محدوده متغییر ها را متناسب با کار خود تنظیم کنید !!
    4- با فشردن هر گونه حرف و یا هر چیزی به جز عدد و ممیز ، برنامه هنگ می کند .
    5-- برنامه برای جلوگیری از وارد شدن دو ممیز تنظیم نشده است .
    6-برای اعداد منفی تنظیم نشده است !!
    ....

    دوست عزیز مشکلاتی که گفتم را اگر می توانید خودتان حل کنید چون سرم شلوغه فقط نیاز به دقت و ابتکار عمل دارد !!
    راستی بگم که اول می خواستم یک کد طولانی و خیلی کند بنویسم ولی با دیدن این آدرس که خودتان این سوال را مطرح کرده بودید :
    منظورم این آدرس هست :
    http://www.dreamincode.net/forums/to...rouping-option
    و دیدن این لینک :
    http://msdn.microsoft.com/en-us/library/0c899ak8.aspx
    توی اون تایپک و کمی ابتکار عمل تونستم ، این سورس و برنامه را بنویسم !!
    اگه راهنمایی خواستید من در خدمتم .....

  5. #5
    کاربر دائمی
    تاریخ عضویت
    تیر 1389
    محل زندگی
    0x111530EF - 0x11657DA
    پست
    873

    نقل قول: ایجاد آپشن Digit Group برای تکست باکس ( مثل ماشین حساب ویندوز XP )

    xp ندارم اما این میتونه کمک کنه:


    Private Function Spiler(decnum As Decimal) As String

    Dim dotindex As Int32 = decnum.ToString.IndexOf(".")

    If dotindex > 0 Then

    Dim befordot As String = Mid(decnum, 1, dotindex)
    Dim afterdot As String = Mid(decnum, dotindex + 1, (decnum.ToString.Length - 1) - (dotindex))

    befordot = Format(decnum, "###,###")

    Return befordot & afterdot
    Else

    Return Format(decnum, "###,###")
    End If
    End Function

  6. #6

    نقل قول: ایجاد آپشن Digit Group برای تکست باکس ( مثل ماشین حساب ویندوز XP )

    با سلام مجدد و تشکر از دوستانی که در این تایپیک به من کمک کردند. کامل شده این تیکه از برنامه رو جهت استفاده دوستانی که لازم دارند میذارم.

    Private
    Sub TextBox1_KeyPress(ByVal sender AsObject, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
    Dim TextTag AsString = sender.tag
    Dim IntegerPart AsString = ""
    Dim EditedIntegerValue AsString = ""
    Dim EditedValue AsDecimal
    Dim DecimalPart AsString = ""
    C = e.KeyChar
    SelectCase C
    Case"."
    If TestDot = FalseThen
    TextTag += "."
    TestDot = True
    EndIf
    Case vbBack
    IfStrings.Right(TextTag, 1) = "."Then TestDot = False
    If Len(TextTag) > 0 Then
    IfStrings.Mid(TextTag, TextTag.ToString.Length, 1) = "."And Len(TextTag) > 1 Then
    TextTag = Strings.Left(TextTag, TextTag.ToString.Length - 2)
    Else
    TextTag = Strings.Left(TextTag, TextTag.ToString.Length - 1)
    EndIf
    EndIf
    Case"0"To"9"
    TextTag += C
    Case vbTab
    TestDot =
    False
    EndSelect
    If TextTag.IndexOf(".") = -1 Then
    IntegerPart = TextTag
    Else
    IntegerPart = Strings.Left(TextTag, TextTag.IndexOf("."))
    If Val(IntegerPart) = 0 Then IntegerPart = "0"
    DecimalPart = Strings.Right(TextTag, Len(TextTag) - (TextTag.IndexOf(".") + 1))
    EndIf
    If Len(IntegerPart) > 0 Then
    EditedValue = CType(IntegerPart, System.Decimal)
    EditedIntegerValue = EditedValue.ToString(
    "#,#", CultureInfo.InvariantCulture)
    Else
    EditedIntegerValue = "0"
    EndIf
    If Val(TextTag) < 1 Then EditedIntegerValue = "0"
    sender.tag = TextTag
    sender.Text = EditedIntegerValue &
    "." & DecimalPart
    sender.selectionstart = sender.textlength
    Label1.Text = Val(sender.tag)
    e.Handled =
    True
    EndSub

  7. #7

    نقل قول: ایجاد آپشن Digit Group برای تکست باکس ( مثل ماشین حساب ویندوز XP )

    ببخشید ، ولی formatNumber(Number,0) کار نمی کنه؟

  8. #8

    نقل قول: ایجاد آپشن Digit Group برای تکست باکس ( مثل ماشین حساب ویندوز XP )

    نقل قول نوشته شده توسط amirzandi مشاهده تاپیک
    ببخشید ، ولی formatNumber(Number,0) کار نمی کنه؟
    سلام.
    من 2 ماهه گیر همینم.اگه تایپیک رو نگاه کنی خیلی هم تو این سایت هم سایتهای خارجی این سوال رو مطرح کردم.ولی هیچ کس جواب یا راه حلی نداد.با FormatNumber هم کار کردم.ولی جواب نمی داد.اگه شما راه حلش با استفاده از FormatNumber رو بگی ممنون میشم.
    در ضمن به این تیکه برنامه توجه کنید:

    Dim LengthValue AsString = "1234567890.1"
    Dim WidthValue AsString = "1234567"
    Dim
    Area AsDouble = Val(LenghtValue) * Val(WidthValue)
    Dim DecPartLength AsInteger
    Dim IndexDot AsInteger = Area.ToString.IndexOf(".")
    If IndexDot = -1 Then
    DecPartLength = 0
    Else
    DecPartLength = Len(Area.ToString) - IndexDot
    EndIf
    AreaValue.Text = FormatNumber(CType(Area, System.Double), DecPartLength, , , TriState.True)

    ببینید چرا جواب با جواب ماشین حساب یکی نیست.
    توجه کنید که من می خوام تعداد اعداد اعشاری جواب بستگی داشته باشه به ارقام اعشاری دو عددی که در هم ضرب شده اند.

تاپیک های مشابه

  1. راهنمایی برای ایجاد تاریخچه برای تکست باکس...
    نوشته شده توسط Heidari66 در بخش VB.NET
    پاسخ: 10
    آخرین پست: جمعه 29 اردیبهشت 1391, 11:42 صبح
  2. کامپوننتی برای تکست باکس های مخصوص
    نوشته شده توسط relax_cp در بخش کامپوننت ها و ابزارهای کاربردی در VB6
    پاسخ: 1
    آخرین پست: چهارشنبه 28 مرداد 1388, 17:59 عصر
  3. سوال: قرار دادن فونت خارجی برای تکست باکس
    نوشته شده توسط sysman_20 در بخش C#‎‎
    پاسخ: 1
    آخرین پست: پنج شنبه 07 خرداد 1388, 15:29 عصر
  4. مقدار پیش فرض برای تکست باکس
    نوشته شده توسط saed2006 در بخش WPF
    پاسخ: 1
    آخرین پست: شنبه 19 اردیبهشت 1388, 20:02 عصر
  5. ایجاد شکل لوزی در یک تکست باکس
    نوشته شده توسط Salar Ashgi در بخش C#‎‎
    پاسخ: 5
    آخرین پست: دوشنبه 07 مرداد 1387, 14:13 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •