نمایش جداگانه سه رقمی اعداد داخل TextBox در ویندوز فرم و wpf سی شارپ

سلام مجدد به دوستان عزیز .

این مطلب تقریبا تخصصی به نظر میاد و بیشتر به درد برنامه نویسای ویندوز که با زبان سی شارپ c# کار می کنن میخوره .

چون خودم سر این قضیه ( نمایش اعداد به صورت سه رقمی مثلا در TextBox هایی که مبلغ رو نشون میدن ) خیلی به مشکل خورده بودم

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

در wpf در نهایت کدی شبیه به تصویر زیر خواهید داشت .

csharptextboxmoney

خوب اول از همه یه TextBox بندازید داخل فرمتون .

بعد روی رویداد TextChange(مقدار مشابه رو در ویندوز فرم و wpf خودتون پیدا کنید) تکست باکستون ۲بار کلیک کنید .

بعد کد های زیر رو داخل بلوک کپی کنید :

if(this.Text == "")
{
this.Text = "0";
}
this.Text = Int64.Parse(this.Text.Replace(",", "")).ToString("n0");
this.SelectionStart = this.Text.Length;

توضیح کد ها:
داخل شرط if چک می کنیم اگه مقدار داخل TextBox خالی بود برابر با عدد ۰ قرار میدیم که به خطا نخوره !
بعد شرط هم با تابع Replace مقدار داخل تکست باکس رو چک می کنیم و به صورت سه رقمی جداش می کنیم .
در خط آخر هم نشان گر ورود تکست باکس رو به آخر خط می بریم تا اعداد درست نمایش داده بشه .

نکته : یادتون باشه خودتون در event مربوط به keypress تکست باکستون چک کنین مقدار وارد شده حتما عدد باشه در غیر این صورت با خطا مواجه میشین .

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

علی نظامی فر

علی نظامی فر هستم ، متولد 9 مهر 1373 دانشجوی کارشناسی رشته ی آی تی . تخصص من طراحی سایت و برنامه نویسی ، سر گرمی ها : آهنگسازی و فیلم دیدن . این سایت برای به اشتراک گذاری دل نوشته ها ، و تجربیات ساخته شده ،امیدوارم مفید واقع بشه .

26 thoughts to “نمایش جداگانه سه رقمی اعداد داخل TextBox در ویندوز فرم و wpf سی شارپ”

  1. سلام.ممنون .خیلی خوب بود.از دست اندرکاران وبسایت به
    این خوبی سپاسگزارم

  2. سلام ببخشید برای وارد کردن این اعداد به دیتابیس حتما باید فیلد مربوطه از انواع char باشه؟ یا کدی هست که بشه مجددا این “,” رو از عدد کم کرد و مقدار int بدست اورد که بشه توی دیتابیس ذخیره کردشون(با نوع داده ای int یا long)

    1. سلام .
      به مثال زیر دقت کنید :
      String str = “1 2 3 4 5 6 7 8 9”;
      Console.WriteLine(“Original string: \”{0}\””, str);
      Console.WriteLine(“CSV string: \”{0}\””, str.Replace(‘ ‘, ‘,’));

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *