پایین آمدن سرعت datagridview بخاطر کد رنگی کردن هر سطر بر اساس شرط خاص
با سلام .من یه دیتاگریدویو دارم که توش دو تا شرط دارم طبق کد زیر . ولی سرعتش خیلی اومده پایین . اسکرول که میکنم اسلوموشن حرکت میکنه .
چطور میتونم سرعت رو افزایش بدم ؟
private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
foreach (DataGridViewRow Myrow in dataGridView1.Rows)
{
if (Convert.ToBoolean(Myrow.Cells["Sign1"].Value) == true && Convert.ToBoolean(Myrow.Cells["Sign2"].Value) == true)
{
Myrow.DefaultCellStyle.BackColor = Color.Brown;
}
else if (Convert.ToBoolean(Myrow.Cells["Sign1"].Value) == false && Convert.ToBoolean(Myrow.Cells["Sign2"].Value) == true)
{
Myrow.DefaultCellStyle.BackColor = Color.BurlyWood;
}
else if (Convert.ToBoolean(Myrow.Cells["Sign1"].Value) == true && Convert.ToBoolean(Myrow.Cells["Sign2"].Value) == false)
{
Myrow.DefaultCellStyle.BackColor = Color.Yellow;
}
else if (Convert.ToBoolean(Myrow.Cells["Sign1"].Value) == false && Convert.ToBoolean(Myrow.Cells["Sign2"].Value) == false)
{
Myrow.DefaultCellStyle.BackColor = Color.White;
}
}
}
نقل قول: پایین آمدن سرعت دیتاگریدویو بخاطر کد رنگی کردن هر سطر بر اساس شرط خاص
با سلام، توی فرم لود از متد DoubleBuffered استفاده کن، اگه اشتباه نکنم یه پارامتر بولین میگرفت:
form1.DoubleBuffered(true);
و یا میتونی یه اکستنشن متد بنویسی و این خاصیت رو فقط به دیتا گریدت بدی
نقل قول: پایین آمدن سرعت دیتاگریدویو بخاطر کد رنگی کردن هر سطر بر اساس شرط خاص
نقل قول:
نوشته شده توسط
mr.sirwan
با سلام، توی فرم لود از متد DoubleBuffered استفاده کن، اگه اشتباه نکنم یه پارامتر بولین میگرفت:
form1.DoubleBuffered(true);
و یا میتونی یه اکستنشن متد بنویسی و این خاصیت رو فقط به دیتا گریدت بدی
سرعت گرید یه کمکی بهتر شد . ولی هنوز هم پرش داره .
نقل قول: پایین آمدن سرعت دیتاگریدویو بخاطر کد رنگی کردن هر سطر بر اساس شرط خاص
سلام
توی این رویداد نیازی نیست از حلقه استفاده کنی.
dataGridView1.Rows[e.RowIndex].Cells["Sign1"].Value
نقل قول: پایین آمدن سرعت دیتاگریدویو بخاطر کد رنگی کردن هر سطر بر اساس شرط خاص
نقل قول:
نوشته شده توسط
Mahmoud Zaad
سلام
توی این رویداد نیازی نیست از حلقه استفاده کنی.
dataGridView1.Rows[e.RowIndex].Cells["Sign1"].Value
جناب محمودزاد عزیز متوجه منظورتون نشدم .:ناراحت:
میشه واضحتر بگین ؟
نقل قول: پایین آمدن سرعت دیتاگریدویو بخاطر کد رنگی کردن هر سطر بر اساس شرط خاص
از حلقه که نباید استفاده کنی، اون کد هم منظورم این بود که همون کدهای بالا رو بنویسید و به جای MyRow از dataGridView1.Rows[e.RowIndex] استفاده کنید. البته بهتره دو تا متغیر بولین ابتدا تعریف کنید برای مقادیر ستون های Sign1 و Sign2 و بعد شرط ها رو چک کنید.
bool _sign1=Convert.ToBoolean(dataGridView1.Rows[e.RowIndex].Cells["Sign1"].Value);
bool _sign2=Convert.ToBoolean(dataGridView1.Rows[e.RowIndex].Cells["Sign2"].Value);
if(_sign1 && _sign2)
...