PDA

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



javad_64
یک شنبه 18 مرداد 1388, 16:13 عصر
سلام من یک دیتاگرید دارم که شامل یک ستون از نوع checkbox است حالا با انتخاب این ceeckbox می خواهم رنگ آن سطر عوض شود .من از رویداد valuechange استفاده می کنم که برنامه تقریبا کار میکند ولی هنگامی در یک سطر checkbox آن سطر را فعال می کنم تا زمانی که در جائی دیگر از دیتاگرید یا کنترلی دیگر خارج از آن کلیک نکنم آن سطر تغییر رنگ نمی دهد. ولی من می خواهم به محض انتخاب تغییر رنگ دهد. به نظر شما دوستان چکار باید کرد؟

javad_64
یک شنبه 18 مرداد 1388, 20:32 عصر
کسی نبود جواب منو بده؟تو این دو سه روزه این سومین تایپیک منه که هیچ جوابی نمی گیرم؟:گریه:

raha_20
یک شنبه 18 مرداد 1388, 20:52 عصر
فکر نمی کنم بتونی سطر خاصی را رنگی کنی می تونی رنگ ستون های زوج وفرد را متفاوت بگذاری و رنگ فقط یه ستون خاص را نه.

javad_64
یک شنبه 18 مرداد 1388, 21:05 عصر
فکر نمی کنم بتونی سطر خاصی را رنگی کنی می تونی رنگ ستون های زوج وفرد را متفاوت بگذاری و رنگ فقط یه ستون خاص را نه.

سطر مورد نظر من رنگی میشه ولی دیر به آن اعمال میشو د همانطور که بالا هم گفتم باید کاربر در جای دیگر کلیک کند تا آن تغییرات اعمال شود

Sociant
دوشنبه 19 مرداد 1388, 02:40 صبح
دوست عزیز من تست کردم ، جواب شما رو گرفتم ! ظاهرا راهی نیست!:افسرده:

mohammad59mt
دوشنبه 19 مرداد 1388, 05:42 صبح
شاید اگر focus رو به صورت دستی به یک کنترل دیگه بدی و بعد دوباره اون رو به دیتاگرید بدی مشکلت حل بشه!

asd_moghadas
دوشنبه 19 مرداد 1388, 07:14 صبح
باسلام
درصورتی می توانی این کاررا انجام دهی که
1-دیتاگرید بایند نشده باشه
2-بخواهی 2مقداررا باهم مقایسه کنی
مثال :فرض کنی اگه دوتاریخ داری همانند برنامه Ispکه یک تاریخ ورود ودیگری تاریخ انقضا میباشد حالا با روشهای مقایسه معمول این کاررا انجام میدهیم اگه دوتاریخ به هم رسیده رنگ اون تغییر میکنه

private void SelectGroup()
{
//try
//{
SqlCon = new SqlConnection();
SqlCon.ConnectionString = Nezarat.Properties.Settings.Default.Nezarat_dataCo nnectionString;
SqlCon.Open();

SqlCmd = new SqlCommand();
SqlCmd.Connection = SqlCon;
SqlCmd.CommandType = CommandType.Text;
SqlCmd.CommandText = "SELECT *FROM View_Biografi";

SqlDA = new SqlDataAdapter();
SqlDA.SelectCommand = SqlCmd;
SqlCmd.ExecuteNonQuery();

DTable = new DataTable();
SqlDA.Fill(DTable);
SqlCon.Close();

dataGridView_Pezashkan.Rows.Clear();
counter = 0;
DisableClrRow.BackColor = Color.Gold;
EnableClrRow.BackColor = Color.Silver;
dataGridView_Pezashkan.DataSource = DTable;
for (int i = 0; i < dataGridView_Pezashkan.Rows.Count; i++)
{

int cmp = string.Compare(dataGridView_Pezashkan.Rows[i].Cells[1].Value.ToString(), FarsiLibrary.Utils.PersianDateConverter.ToPersianD ate(DateTime.Now).ToString());
if (cmp <= 0)
{

DataGridViewCellStyle ds = new DataGridViewCellStyle();
ds.BackColor = Color.Yellow;
dataGridView_Pezashkan.Rows[1].DefaultCellStyle = ds;
}
}
//}
//catch (Exception ex)
//{
// MessageBox.Show(ex.Message);
//}
}
}

javad_64
دوشنبه 19 مرداد 1388, 11:43 صبح
با تشکر از همه دوستان عزیز
تونستم یه راهی براش پیدا کنم با تغییرات زیر
1- ستون checkbox باید حتما ستون شماره 0 باشه
2-به جای رویداد cellvaluechange از cellclick استفاده کردم

اوبالیت به بو
دوشنبه 19 مرداد 1388, 11:56 صبح
2-به جای رویداد cellvaluechange از cellclick استفاده کردم
دليل اصلي اين رويداد هست.


1- ستون checkbox باید حتما ستون شماره 0 باشه
فكر نمي كنم تاثير داشته باشه.