نوشته شده توسط
M.YasPro
progressbar فقط مامور نمایش پیشرفت یک عملیات هست و ربطی به هنگ کردن یا نکردن پروسس نداره .
اگر تعداد رکورد هاتون زیاده باید از thread ها استفاده کنید .
اما اگر تعداد کم هست :
private void dataGridView1_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e)
{
if (dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString() == "a")
dataGridView1.Rows[e.RowIndex].Cells[0].Style.BackColor = Color.Red;
}
(البته کد بالا هم بعد از بایند شدن گرید به صورت اتوماتیک و به تعداد رکورد های دیتاسورس شما فایر میشه)
شاید ایونت بهتری برای اینکار وجود داشته باشه .
موفق باشید .
ممنون برای تعداد رکورد زیاد چطور باید انجام بدم؟
اگه ممکنه یه مثال هم از thread برای بزنید ممنون
من خودم اینجوری انجام دادم
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
//progressBar1.Maximum = dataGridView1.Rows.Count;
foreach (DataGridViewRow r in dataGridView1.Rows)
{
// progressBar1.Value += 1;
if (Convert.ToInt32(r.Cells[6].Value) == 1)
{
foreach (DataGridViewCell c in r.Cells)
{
c.Style.BackColor = System.Drawing.Color.MediumAquamarine;
}
}
else if (Convert.ToInt32(r.Cells[6].Value) == 2)
{
foreach (DataGridViewCell c in r.Cells)
{
c.Style.BackColor = System.Drawing.Color.LightSteelBlue;
}
}
else if (Convert.ToInt32(r.Cells[6].Value) == 3)
{
foreach (DataGridViewCell c in r.Cells)
{
c.Style.BackColor = System.Drawing.Color.YellowGreen;
}
}
}
backgroundWorker1.CancelAsync();
}
که بعد از بایند کردن دیتا ست به دیتا گرید بک گراند ورکرو صدا میزنم
خواستم از progressBar هم تو BackGroundWorker استفاده کنم که خطای اینکه دو تا ترد تو هم نمی تونن کار کنن رو داد