نمایش جداگانه سه رقمی اعداد داخل 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 تکست باکستون چک کنین مقدار وارد شده حتما عدد باشه در غیر این صورت با خطا مواجه میشین .

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