PDA

View Full Version : جدا سازی مقادیر پولی در گرید ویو



arash_flag
سه شنبه 18 شهریور 1393, 11:47 صبح
با سلام من یک گرید دارمک میخام یکی ازستون های آن که با قیمت پر میشود را 3 تا 3 تا جدا کنم
چطوری؟؟؟؟؟؟؟؟؟؟؟؟

مجید آرتا
سه شنبه 18 شهریور 1393, 12:16 عصر
سلام
در ابتدا name ستون مورد نظر رو پیدا کن به عبارتی برای اینکار به name ستون نیاز داریم

خب اگه قصد داری فقط 3 رقم 3 رقم جدا کنی این کد:



;"this.dgvTextBoxColumn3.DefaultCellStyle.Format = "n0

اگه میخوایی در کنار جدا کردن واحد پول رو هم بزنه این کد:


;"this.dgvTextBoxColumn3.DefaultCellStyle.Format = "c0

dgvTextBoxColumn3:این name ستون بندس مال شما یه چیزه دیگس

از طریق پراپرتیس هم میشه بدون کدنویسی

mreram
سه شنبه 18 شهریور 1393, 15:10 عصر
یه راه خیلی ساده اینه که مثلث گوشه ی دیتاگرید ویو رو بزنی و edit columns رو بزنیDataGridViewCellStyle رو باز کن و جلوی فرمت بنویس 0,0
واسه هر ستونی که میخوای میتونی این کارو انجام بدی
دوستمون هم راهه خوبی رو گفتن( مجید)

bazikadeh
شنبه 01 آذر 1393, 11:13 صبح
من هرچی جلو فرمت زدم نشد

moharam1370
شنبه 01 آذر 1393, 19:03 عصر
من هرچی جلو فرمت زدم نشد
اگر تعداد ستون ها مشخص باشه با ویزارد قابل تنظیمه ، اگر تعداد ستون ها هنگام اجرا مشخص میشه باید با کد بنویسی ...

bazikadeh
شنبه 01 آذر 1393, 19:35 عصر
خوب با ویزار عجیبه هر کاری کردم نشد.
روش این که با کد ایجاد میکنیم چه طوریه ؟

bazikadeh
شنبه 01 آذر 1393, 19:41 عصر
dataGridView1.Columns[2].DefaultCellStyle.Format="NO";


باز هم نمیشه

khokhan
شنبه 01 آذر 1393, 20:23 عصر
dataGridView1.Columns[2].DefaultCellStyle.Format="NO";


باز هم نمیشه
شاید دلیلش این باشه که همه چیز رو خیلی ساده می گیریم ...........................

اگه قراره توی گرید به صورت دستی مقداری وارد بشه:
قبل از هرچیز سلولی رو که قراره توش فرمت پولی اجرا بشه در رویداد EditingControlShowing دیتا گرید یک تکست باکس معمولی در نظر می گیریم....
وهمانند تکست باکس معمولی رویداد KeyPress برای تشخیص ورودی و رویداد TextChanged برای تعریف فرمت مورد نظر تعریف می کنیم :


private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
text = e.Control as TextBox;
if (dataGridView1.CurrentCell.ColumnIndex == dataGridView1.Columns[1].Index)
{
if (text != null)
text.TextChanged += new EventHandler(textBox1_TextChanged);

text.KeyPress += new KeyPressEventHandler(dataGridView1_KeyPress);
}
}

با این کار شرایط برای اجرای سناریو ایجاد فرمت پولی در دیتا گرید ویو تسهیل می شه و در رویدادهای ایجاد شده کار رو تمام می کنیم :

رویداد TextChanged :


private void textBox1_TextChanged(object sender, EventArgs e)
{

if (text.Text.Length > 3)
{

string textA = text.Text.Replace(",", "");

double n = Convert.ToDouble(textA);

text.Text = string.Format("{0:0,0}", n);

text.SelectionStart = text.Text.Length;

}



}

و رویداد KeyPress :


private void dataGridView1_KeyPress(object sender, KeyPressEventArgs e)
{
if (!char.IsDigit(e.KeyChar))
{

if (e.KeyChar != '\b')

e.Handled = true;

}

}

اما اگه گریدتون به دیتا ست وصل باشه قضیه فرق می کنه:لبخند:

bazikadeh
شنبه 01 آذر 1393, 21:15 عصر
خوب الان دقیقا من دیتا گریدم به بانک وصله اون رو چطور تغییر بدم ؟

ghasem110deh
یک شنبه 30 آذر 1393, 20:06 عصر
اگه میخوایی در کنار جدا کردن واحد پول رو هم بزنه این کد:


;"this.dgvTextBoxColumn3.DefaultCellStyle.Format = "c0



سلام
نخندین ها ... هیچ راهی نداره که واحدش رو به تومان تغییر بدیم ؟

ghasem110deh
پنج شنبه 04 دی 1393, 22:40 عصر
نخندین ها ... هیچ راهی نداره که واحدش رو به تومان تغییر بدیم ؟سلامسوال قبل رو که جواب ندادین ؟ من از این کد استفاده کردم (مشکلی هم نداره)فقط موقع جستجو یکی از پارامترام مبلغ فاکتوره (پول) اما چون بصورت سه رقم از هم جدا شده جواب نمیده !خطا نمیده اما جستجوم کار نمیکنه ؟ (دستورای جستجوم درسته چون Id و شماره فاکتور رو پیدا میکنه)