PDA

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



eletcomp
دوشنبه 07 بهمن 1392, 10:31 صبح
با سلام
من میخواستم سلول های دیتاگرید را به صورت افقی رنگی کنم!! ایا می شود این کار را کرد!!
البته طبق عکس میشه عمودی رنگی کرد !!! ولی من میخوام افقی بشه!!


dataGridView1.Columns[0].DefaultCellStyle.BackColor = Color.Yellow;
dataGridView1.Columns[1].DefaultCellStyle.BackColor = Color.Bisque;
dataGridView1.Columns[2].DefaultCellStyle.BackColor = Color.Yellow;
dataGridView1.Columns[3].DefaultCellStyle.BackColor = Color.Azure;
dataGridView1.Columns[4].DefaultCellStyle.BackColor = Color.Yellow;


سپاس

مهرداد صفا
دوشنبه 07 بهمن 1392, 11:03 صبح
با سلام.


for(int i=0;i<DataGrid.ColumnCount;i++)
DataGrid[0,i].Style.BackColor=Color.xxxx;

eletcomp
دوشنبه 07 بهمن 1392, 11:21 صبح
ممنون مدیر عزیز:ولی نمیدونم چرا ارور داد!!! لطفا بیشتر توضیح بدهید!! شاید من جای نادرست نوشتم!
سپاس

hessam2003
دوشنبه 07 بهمن 1392, 11:30 صبح
سلام.
می توینید از این تابع در برنامه هاتون استفاده کنید.
public void show_debits()
{
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
if (dataGridView1.Rows[i].Cells[5].Value.ToString() != "0.0000")
dataGridView1.Rows[i].DefaultCellStyle.BackColor = Color.Red;
}
try
{
dataGridView1.SelectedRows[0].Selected = false;
}
catch (Exception)
{


}
}

reza.zarchi
دوشنبه 07 بهمن 1392, 11:32 صبح
این کد هم شاید بتونه کمکتون بکنه:

DataGridViewCellStyle dgc = new DataGridViewCellStyle();
dgc.BackColor = Color.LightGreen;
table1DataGridView.AlternatingRowsDefaultCellStyle = dgc;

amir200h
دوشنبه 07 بهمن 1392, 11:32 صبح
بعد از پر کردن دیتاگرید کدتو بنویس.
موفق باشی

nathan
دوشنبه 07 بهمن 1392, 11:49 صبح
سلام
اگر فقط قصد دارید که از دو رنگ به صورت تیک تاک استفاده کنید می تونید از خاصیت BackColor در قسمت Appearance مربوط به AlternatingRowsDefaultCellStyle استفاده کنید و با تخصیص رنگ مورد نظر ردیفهای فرد به این رنگ در میان و کافیه در DefaultCellStyle رنگ کل سلولها رو مشخص کنید حالا تمام ردیفها به صورت خودکار رنگ می شن و شما دو رنگ دارید.
اگر نیاز به بیش از چند رنگ دارید می تونید از رخداد DataGridView_CellFormatting استفاده کنید و در اونجا با درنظر گرفتن شماره اندیس ردیف اقدام به رنگ کردن سلولهای اون ردیف بکنید.

eletcomp
دوشنبه 07 بهمن 1392, 11:49 صبح
ممنون دوستان ولی هیچ کدام از کد هاتون کار نکرد و همان ارور قبلی را داد!! پروژه را بررسی قرار می دهم لطفا راهنمایی کنید!
سپاس

eletcomp
دوشنبه 07 بهمن 1392, 12:06 عصر
دوستان این کد را توی رخداد DataGridView_CellFormatting گذاشتم و جواب داد و به صورت اول سفید بعد قرمز ولی اگر بخواهیم رنگ بیشتری به کار ببریم باید چه کار کنیم؟؟


public void show_debits()
{
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
if (dataGridView1.Rows[i].Cells[5].Value.ToString() != "0.0000")
dataGridView1.Rows[i].DefaultCellStyle.BackColor = Color.Red;
dataGridView1.Rows[i].DefaultCellStyle.BackColor = Color.Aqua;
}
try
{
dataGridView1.SelectedRows[0].Selected = false;
}
catch (Exception)
{

nathan
دوشنبه 07 بهمن 1392, 21:55 عصر
ولی اگر بخواهیم رنگ بیشتری به کار ببریم باید چه کار کنیم؟؟

می تونید یک لیست بسازید از رنگهای دلخواه و به ازای اندیس هر ردیف همون رنگ رو فراخونی کنید یا فنی تر می تونید کار کنید و اینکه رنگ رو بسازید با استفاده از متد Color.FromArgb.
این آخریه محشریه واسه خودش و اینقدر دستتون بازه که حتی می تونید چیزی شبیه به رنگین کمان رو پیاده سازی کنید البته باید در مورد سه رنگ اصلی و ترکیبات اونها یکم تحقیق کنین.