PDA

View Full Version : تغییر رنگ یک سلول دیتاگرید



Mrs.Net
پنج شنبه 21 تیر 1386, 18:59 عصر
چطور میتونم رنگ backcolor یک سلول از دیتاگرید عوض کنم؟

اَرژنگ
پنج شنبه 21 تیر 1386, 19:17 عصر
DateGrid یا DataGridView
؟
DateGrid دیگر قدیمی شده کسی ازش استفاده نمیکند.

Mrs.Net
پنج شنبه 21 تیر 1386, 19:31 عصر
ببخشید همون دیتاگرید ویو DataGridView

اَرژنگ
پنج شنبه 21 تیر 1386, 19:34 عصر
ببخشید همون دیتاگرید ویو DataGridView

http://msdn2.microsoft.com/en-us/library/z1cc356h.aspx

MH2538
شنبه 23 تیر 1386, 11:30 صبح
private void dgvMain_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
{
try
{
if (e.RowIndex > 0)
if (e.RowIndex % 2 == 1)
e.CellStyle.BackColor = Color.FromArgb(224, 224, 224);
}
catch (Exception ex)
{
LogData(ex, 14);
MessageBox.Show(ex.Message);
}
}

Mrs.Net
پنج شنبه 04 مرداد 1386, 22:33 عصر
اگه بخوام هر سلولی که رقم زوج داشت سبز نشون بدم چیکار کنم؟
با توجه به اینکه از بیندینگ استفاده میکنه

once4ever
پنج شنبه 04 مرداد 1386, 23:21 عصر
به جوابی که اَرژنگ داده با دقت نگاه کن

MH2538
یک شنبه 07 مرداد 1386, 16:00 عصر
تنها تفاوت بوجود اومده توی e.ColumnIndex است که به جای شماره سطر شماره ستون رو مشخص می کنه .


try
{
if (e.ColumnIndex%2==0)
e.CellStyle.BackColor = Color.FromArgb(224, 224, 224);
}
catch (Exception ex)
{
LogData(ex, 14);
MessageBox.Show(ex.Message);
}

modern_amin
سه شنبه 23 مهر 1392, 12:39 عصر
DataGridView_pishnad.Rows[i].Cells["miz"].Style.BackColor = Color.Green;

korosh00
جمعه 12 اردیبهشت 1393, 20:03 عصر
سلام
من می خوام موقعی که دیتاگرید ویو اطلاعات را لود می کنه اگر تو ستون مثلا cod عدد 1 بود همه رکوردهایی که فیلد cod آنها عدد 1 دارد را رنگ سبز کند و همینطور موقعی که اگر عدد 2 بود قرمز کند .
توجه کنید موقعی که دیتاگرید لود میشود نه اینکه روی فیلد مورد نظر کلیک کنیم !!!!

این کد من وقتی روی فیلد کلیک کنیم است که بدرد من نمی خورد ؟؟؟؟؟؟؟؟





if (dataGridView1.CurrentCell.Value.ToString().Trim() == "1")
{
dataGridView1.BackColor = Color.GreenYellow;
dataGridView1.CurrentCell.Style.BackColor = Color.GreenYellow;
}

Mahmoud.Afrad
جمعه 12 اردیبهشت 1393, 20:25 عصر
میتونی بعد از پر کردن گرید ، با یک حلقه رنگ سلول های مورد نظر رو تغییر بدی.

sm_1366
شنبه 13 اردیبهشت 1393, 08:11 صبح
سلام
من می خوام موقعی که دیتاگرید ویو اطلاعات را لود می کنه اگر تو ستون مثلا cod عدد 1 بود همه رکوردهایی که فیلد cod آنها عدد 1 دارد را رنگ سبز کند و همینطور موقعی که اگر عدد 2 بود قرمز کند .
توجه کنید موقعی که دیتاگرید لود میشود نه اینکه روی فیلد مورد نظر کلیک کنیم !!!!

این کد من وقتی روی فیلد کلیک کنیم است که بدرد من نمی خورد ؟؟؟؟؟؟؟؟





if (dataGridView1.CurrentCell.Value.ToString().Trim() == "1")
{
dataGridView1.BackColor = Color.GreenYellow;
dataGridView1.CurrentCell.Style.BackColor = Color.GreenYellow;
}


کدی که دوستمون آرژنگ گفتن رو
تو رویداد لود فرمت بنویس...

korosh00
چهارشنبه 17 اردیبهشت 1393, 16:03 عصر
الان ما وقتی واردصفحه میشیم گرید ویو اطلاعات دیتابیس را نمایش میده (تو لود فرم نوشتم )
حالا می خوام در این جدول در ستون مثلا نمره نمره هر کسی پایین تر از 10 بود رنگ قرمز بشه .
یعنی وقتی صفحه لود شد این کارها انجام شده باشه و دیده بشه .
همین .
ممنون

Mahmoud.Afrad
پنج شنبه 18 اردیبهشت 1393, 14:12 عصر
با حلقه انجام بده. بعد از کدی که گریدویو رو پر میکنی کد زیر رو بنویس:

for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
ushort grade = Convert.ToUInt16(dataGridView1.Rows[i].Cells["grade"].Value);
if (grade < 10)
{
dataGridView1.Rows[i].DefaultCellStyle.BackColor = Color.Red;
}
}

محمد قانعی
چهارشنبه 20 اسفند 1393, 09:09 صبح
با سلام خدمت اساتید محترم.
حالا اگه ما بخواهیم فقط رنگ یک سلول(یا فرمت یک سلول)رو عوض کنیم باید چیکار کنیم؟
من کد شما رو این جوری نوشتم و خیلی عالی بود فقط فرمت همه ردیف رو عوض می کنه ولی من می خوام فقط فرمت یک سلول رو عوض کنم.



for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
decimal grade = Convert.ToDecimal(dataGridView1.Rows[i].Cells[0].Value);
if (grade == 0)
{
dataGridView1.Rows[i].DefaultCellStyle.Format = "n0";
}
}

محمد قانعی
چهارشنبه 20 اسفند 1393, 09:42 صبح
سلام.
درستش کردم.این هم کدش!

for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
dataGridView1.CurrentCell = dataGridView1.Rows[i].Cells[0];
decimal grade = Convert.ToDecimal(dataGridView1.Rows[i].Cells[0].Value);
if (grade == 0)
{
dataGridView1.CurrentCell.Style.Format = "n0";
}
}