PDA

View Full Version : تغییر رنگ datagridveiw با شرط خاصی



babak23
شنبه 14 مهر 1386, 14:50 عصر
سلام
من می خوام با توجه به مقدار یکی از فیلد های بانک اطلاعاتیم که به دیتا گرید وصل هست
رنگ ردیف هایی از دیتا گرید را تعقیر بدم
با فرض اینکه فیلد ما اسمش sum1 باشه اگه مقدار این فیلد از 100 بیشتر باشه
اون ردیف از دیتاگرید قرمز بشه ( این عمل هنگام لود شدن فرم حاوی دیتا گریید صورت بگیره )

من کد را به این صورت نوشتم ممنون میشم اگه این کد را اصلاح کنید

privatevoid grdAuthorTitles_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
{
try
{
for (int i = 0; i < objDataSet.DefaultView.Count; i++)
{
int sum = int.Parse(objDataSet.DefaultView[i]["sum1"].ToString());

if (sum >=100)
{
e.CellStyle.BackColor = Color.FromArgb(224, 224, 224);
}

}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}

مشکل اینکه اگه یکی در یکی از فیلد ها شرط برقرار باشه کل دیتا گرید رنگش تعقیر میکنه

نیازمند یاری سبزتان هستیم

البته من این لینک را هم دیدم
http://barnamenevis.org/showthread.php?t=21630&highlight=datagrid
اما آیا میشه این سورسی که من گذاشتم را تعقیر داد و نتیجه مطلوب را بدست آورد

babak23
شنبه 14 مهر 1386, 14:58 عصر
دوستان سلام
یک Datagrid دارم که از طریق Ado رکوردهای یک Table را نمایش میدهد
میخواهم چنانچه شرط خاصی برقرار بود (مثلا Code=100)، همان سطر data Grid که حاوی این شرط است ،را با رنگ دیگری نمایش دهم (ForeColor یا BackColor)

night11
شنبه 14 مهر 1386, 21:00 عصر
دوستان سلام
یک Datagrid دارم که از طریق Ado رکوردهای یک Table را نمایش میدهد
میخواهم چنانچه شرط خاصی برقرار بود (مثلا Code=100)، همان سطر data Grid که حاوی این شرط است ،را با رنگ دیگری نمایش دهم (ForeColor یا BackColor)

بله میشه شما توی شرط اینو بنویس


dataGridView1.Rows[0].DefaultCellStyle.ForeColor = Color.Red;

PC2st
شنبه 14 مهر 1386, 21:43 عصر
مثلا برای تغییر رنگ (background) سطر دوم:


dataGridView1.Rows[1].DefaultCellStyle.BackColor = Color.Blue;

hassan razavi
یک شنبه 15 مهر 1386, 11:25 صبح
کدتون رو به اینصوزت تغییر بدید :


privatevoid grdAuthorTitles_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
{
DataGridView dgv=New DataGridView();
dgv=(DataGridView)sender;
For(i=0;i<dataGridView1.Rows.Count;i++)
{
if(int.Parse(objDataSet.DefaultView[i]["sum1"].ToString())>100)
{
dgv.Rows[i].DefaultCellStyle.ForeColor = Color.Red;
dgv.Rows[i].DefaultCellStyle.BackColor = Color.Red;
}
}
}