PDA

View Full Version : سوال: مشکل جدا سازی در اعداد و سر و ته شدن اعداد



MehdiElexal
سه شنبه 11 فروردین 1394, 15:14 عصر
با سلام
دوستان مشکل این تیکه کد چیه که اعداد سر وته چاپ میشه ؟!!!


if (txtDel.Text.Length > 2)
{
double CashCost = System.Convert.ToDouble(txtDel.Text.Replace(",", ""));
txtDel.Text = CashCost.ToString("N0");
}

ورودی 123456789

چاپ شده 895,671,234

کلا بهم میریزه برای اینکه سه تا سه تا میره اول خط جای اینکه از اون ب بعد چاپ شه
تشکر

llMMDll
سه شنبه 11 فروردین 1394, 15:45 عصر
سلام
کد شما مشکلی نداره ولی جایی که استفاده می کنید این مشکل رو ایجاد کرده
که به احتمال زیاد داخل رویداد TextChanged نوشتید
با اینکار فوکوس از روی TextBox شما برداشته میشه و میره از ابتدا
از SelectionStart در همین کد استفاده کنید تا از ادامه کار رو انجام بده

MehdiElexal
سه شنبه 11 فروردین 1394, 18:02 عصر
double CashCost = System.Convert.ToDouble(txtDel.Text.Replace(",", ""));
txtDel.SelectionStart = txtDel.SelectionLength;
txtDel.Text = CashCost.ToString("N0");


ورودی 123456789
خروجی 987,654,123
میتونم بچرخونمش به روش های مختلفی ولی میخوام اصولی باشه و بدونم مشکل چیه
عدد 3 که چاپ میشه سلکشن میره سر خط دوباره
واگر

txtDel.SelectionStart = txtDel.SelectionStart;


عدد 4 رو که میزنم میره شروع باعث میشه اعداد ترتیبشون خراب شه
تشکر

omidamiry
سه شنبه 11 فروردین 1394, 18:54 عصر
من معمولا تو چپ چین بودن یا راست چین بودن برچسب lable یا تکس باکس ها پیش میاد . خروجی رو تو چی نمایش میدین خاصیت alighn text رو center کنید

MehdiElexal
سه شنبه 11 فروردین 1394, 19:52 عصر
نه مهندس چپ چین و اینا مشکل نیست
اینم برنامه نمونه اگر کسی میتونه اصلاح کنه
تشکر

MehdiElexal
سه شنبه 11 فروردین 1394, 21:42 عصر
خودم اینجوری حل کردم اما دلچسبم نیست . کسی نظر دیگه ای نداره ؟

double CashCost = System.Convert.ToDouble(txtDel.Text.Replace(",", ""));
txtDel.Text = CashCost.ToString("N0");
SendKeys.Send("{END}");

aslan
سه شنبه 11 فروردین 1394, 23:26 عصر
double CashCost = System.Convert.ToDouble(textBox1.Text.Replace(",", ""));
textBox1.Text = CashCost.ToString("N0");
this.textBox1.SelectionStart = this.textBox1.Text.Length;

مرتضی تقدمی
سه شنبه 11 فروردین 1394, 23:48 عصر
سلام
خدمت شما. تست کنید:

if (textBox1.Text == "" || textBox1.Text == "0") return;
decimal price;
price = decimal.Parse(textBox1.Text, System.Globalization.NumberStyles.Currency);
textBox1.Text = price.ToString("#,#");
textBox1.SelectionStart = textBox1.Text.Length;
موفق باشید