PDA

View Full Version : حرفه ای: رنگی یا غیر فعال کردن یکی از سلولهای دیتاگریدویو بر اساس یه شرط



farhad85
پنج شنبه 19 تیر 1393, 13:09 عصر
سلام دوستان
من یک دیتا گرید ویو دارم که بر اساس کد ملی رکوردهای هرشخصیی که کد ملیش مثلا برابر با تکس1 هستش رو نشون میده
بعد از نشون دادن رکوردها ستون پرداختی کل شخصو جمع میکنه ومیریزه داخل مثلا تکس5

حالا چطوری میتونم بر اساس بک شرط یکی از رکوردها یا ردیف های دیتا گرید رو رنگی یا غیر فغال کنم
وهر رکوردی که رنگی یا غیر فعال شد با ستون پرداختی جمع نشه و تاثبری بر جمع کل تکس باکس5 نداشته باشه

از همه ی شما کمال تشکر رادارم

erfan_urchin
جمعه 20 تیر 1393, 11:46 صبح
برای رنگی کردن یه ردیف میتونی از کد زیر استفاده کنی
For i As Integer = 0 To dataGridView1.Columns.Count - 1
dataGridView1.Rows(0).Cells(i).Style.BackColor = Color.Red
Next

برای رنگی کردن یه سلول هم میتونی از کد زیر استفاده کنی
dataGridView1.Rows(0).Cells(1).Style.BackColor = Color.Red
اما برای این که یه ردیف یا سلول رو جمع نکنی باید یه جوری یه کد بنویسی که اون ردیف رو جمع نکنه. الان خودم چیزی تو ذهنم نیس ولی یه ذره ور بری میتونی کدش رو بنویس
موفق باشی

erfan_urchin
شنبه 21 تیر 1393, 00:21 صبح
اگه بخوای شرط بزاری یه همچین چیزی میشه
For i As Integer = 0 To dataGridView1.Rows.Count - 1
If dataGridView1.Rows(0).Cells(i).Value.ToString() = textBox1.Text Then
dataGridView1.Rows(0).Cells(i).Style.BackColor = Color.Red
Exit For
End If
Next

erfan_urchin
شنبه 21 تیر 1393, 15:23 عصر
اگه بخوای با کلیک روی هر ردیف چک کنه که کد ملی برابر تکست باکس هست یا نه باید بری توی رویداد RowEnter دیتاگریدویو کد زیر رو بنویسی
Private Sub dataGridView1_RowEnter(sender As Object, e As DataGridViewCellEventArgs)
Try
If dataGridView1.Rows(dataGridView1.SelectedRows(0).I ndex).Cells(2).Value.ToString() = textBox1.Text Then
For i As Integer = 0 To dataGridView1.Columns.Count - 1
dataGridView1.Rows(dataGridView1.SelectedRows(0).I ndex).Cells(i).Style.BackColor = Color.Red
Next
End If
Catch
End Try
End Sub


فقط یه نکته هست اینه که من فرض کردم کد ملی ها تو ستون سوم نوشته شده واسه همین توی if نوشتم Cells(2).Value مثلا اگه کدملی ها رو توی ستون اول نوشتی باید بزنی Cells(0).Value
در ضمن حتما try catch بزار منم تو کدهای بالا گذاشتم ( یه وقت ورش نداری :لبخند: )
موفق باشی