PDA

View Full Version : سوال: چجوری ستون قیمت خودم رو 3 تا 3 تا از سمت راست جدا کنم ؟



arash ghafori
سه شنبه 09 خرداد 1391, 12:21 عصر
با سلام .

من یه TextBox دارم که به ستون قیمت بانک خودم بایند کردم .

سوالم اینجاست : چجوری قیمت خودم رو 3 تا 3 تا از سمت راست جدا کنم ؟

ممنون میشم اگه کمکم کنید !

crazy_1892
سه شنبه 09 خرداد 1391, 12:52 عصر
با استفاده از یک for میتونی این کارو کنی

mandanim
سه شنبه 09 خرداد 1391, 14:00 عصر
textBox2.Text = (Int64.Parse(textBox1.Text)).ToString("#,0");

arash ghafori
سه شنبه 09 خرداد 1391, 21:20 عصر
textBox2.Text = (Int64.Parse(textBox1.Text)).ToString("#,0");

واقعا ازتون ممنونم کمک بزرگی بهم کردید .
فقط یه نکته . من این کارو چجوری توی TextChang تکست باکسم بنویسم؟

mandanim
چهارشنبه 10 خرداد 1391, 10:01 صبح
private void textBox3_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == 13) textBox3.Text = (Int64.Parse(textBox3.Text)).ToString("#,0");
}

arash ghafori
چهارشنبه 10 خرداد 1391, 17:27 عصر
private void textBox3_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == 13) textBox3.Text = (Int64.Parse(textBox3.Text)).ToString("#,0");
}

ممنون اما بازم کار نمیکنه .
الان چه کاری انجام بشه اجرا میشه ؟ if (e.KeyChar == 13)

توی if نمیره؟!!
ممنون میشم راهنماییم کنید ؟

programerinfonet
چهارشنبه 10 خرداد 1391, 18:39 عصر
دوست عزیز کل کد بالا رو تو ویرایشگر کدت کپی نکردی که ؟

if (e.KeyChar == 13)
textBox3.Text = (Int64.Parse(textBox3.Text)).ToString("#,0");

تو رویدادtext chenged بنویس

arash ghafori
چهارشنبه 10 خرداد 1391, 19:45 عصر
دوست عزیز کل کد بالا رو تو ویرایشگر کدت کپی نکردی که ؟

if (e.KeyChar == 13)
textBox3.Text = (Int64.Parse(textBox3.Text)).ToString("#,0");

تو رویدادtext chenged بنویس

الان من این کد رو هم توی TxtChang نوشتم . که ه e ارور میگیره .
هم توی KeyPres .
به خدا جواب نمیده . میشه این 2 خط رو برام توی یه پروژه بنویسید ؟
PLZ
به خدا گیره این کارم.

Mahmoud.Afrad
چهارشنبه 10 خرداد 1391, 20:23 عصر
شما نمیتونید از کد mandanim (http://barnamenevis.org/member.php?74650-mandanim) در تکست چنج استفاده کنید چون محتوای تکست باکس رو به عدد تبدیل میکنه و وقتی قبلا سه رقم رو جدا کرده باشه دیگه نمیتونه این کار رو انجام بده و خطا میده.
میتونید از تاپیک زیر استفاده کنید.
تکست باکس با قابلیت جدا کردن ارقام (متن) (http://barnamenevis.org/showthread.php?342804-%D8%AA%DA%A9%D8%B3%D8%AA-%D8%A8%D8%A7%DA%A9%D8%B3-%D8%A8%D8%A7-%D9%82%D8%A7%D8%A8%D9%84%DB%8C%D8%AA-%D8%AC%D8%AF%D8%A7-%DA%A9%D8%B1%D8%AF%D9%86-%D8%A7%D8%B1%D9%82%D8%A7%D9%85-%28%D9%85%D8%AA%D9%86%29)

programerinfonet
چهارشنبه 10 خرداد 1391, 20:46 عصر
درست شد ؟
به جواب رسیدی
اگه می خوایی یک کامپونت هست که این کار رو انجام میده

arash ghafori
پنج شنبه 11 خرداد 1391, 13:39 عصر
شما نمیتونید از کد mandanim (http://barnamenevis.org/member.php?74650-mandanim) در تکست چنج استفاده کنید چون محتوای تکست باکس رو به عدد تبدیل میکنه و وقتی قبلا سه رقم رو جدا کرده باشه دیگه نمیتونه این کار رو انجام بده و خطا میده.
میتونید از این کلاس استفاده کنید
public class separateTextBox : TextBox
{
public override string Text
{
get
{
return base.Text.Replace(",", "");
}
set
{
base.Text = value;
}
}

protected override void OnTextChanged(EventArgs e)
{
if (Text.Length > 3)
base.Text = separateText(Text);
base.Select(base.TextLength, 0);
}

private string separateText(string txt)
{
string t1 = txt.Substring(txt.Length - 3, 3);
string t2 = txt.Substring(0, txt.Length - 3);
if (t2.Length <= 3)
{
txt = t2 + "," + t1;
}
else
{
txt = separateText(t2) + "," + t1;
}
return txt;
}
}
بعد از یک بار دیباگ میتونید separateTextBox از تولباکس استفاده کنید.
قبلا هم این سوال رو در یک تاپیک دیگه پرسیده بودید و جواب داده شده بود

خیلی ممنون کار کرد.
دفعه ی قبل نمیدونستم باید چجوری ازش استفاده کنم .

کد رو تقریبا فهمیدم اما چجوری به ابزار تبدیل شد و توی ToolBox رفت ؟؟؟؟

Mahmoud.Afrad
پنج شنبه 11 خرداد 1391, 14:43 عصر
چون از یک کنترل ارث بری شده ، نتیجه یک کنترل هست که خود به خود به تولباکس اضافه میشه. public class separateTextBox : TextBox