PDA

View Full Version : سوال: اگر مقادير يك ستون DataGridView بزرگتر از يك مقدار خواص شد رنگ پس زمينه ان خانه قرمز شود. آيا ميشود؟



ebrahimv
یک شنبه 26 دی 1389, 00:19 صبح
اگر مقادير يك ستون DataGridView بزرگتر از يك مقدار خواص شد رنگ پس زمينه قرمز شود.

pouyansaraf
یک شنبه 26 دی 1389, 01:11 صبح
سلام
بطور مثال اول 3 ستون اضافه میکنم سپس 1 سطر هم با مقادیر 1و2و3 بهانها می افزایم


For i As Byte = 1 To 3
DataGridView1.Columns.Add(0, "")
Next
DataGridView1.Rows.Insert(0, New String() {"1", "2", "3"})


حال با این کد مقادیر سطر اول را در 3 ستون چک میکنم .
اگر زیر 2 بود سبز و اگر بالای 2 قرمز


For i As Byte = 0 To 2
If DataGridView1.Item(i, 0).Value > 2 Then DataGridView1.Item(i, 0).Style.BackColor = Color.Red
If DataGridView1.Item(i, 0).Value < 2 Then DataGridView1.Item(i, 0).Style.BackColor = Color.Green
Next


مانند شکل زیر

ebrahimv
یک شنبه 26 دی 1389, 01:20 صبح
ممنون ولي اينجوري نه من اطلاعات رو از ديتابيس پر ميكنم با استفاده از ديتاسورس قريد خوب طبيعي هست تعداد ركرد هام زياده و استفاده از for سرعت رو پايين مياره
فرض كنيد جدول نمرات هست ميخوام كسايي كه نمره 20 گرفتن پسزمينه فيلد نمره به آبي عوض بشه اما نه با for اگه راه بهتري سراغ داريد كمك كنيد.

pouyansaraf
یک شنبه 26 دی 1389, 01:51 صبح
سلام
رنک هر ستون را اگر تک تک اعضای آن بزرگ تر از 2 باشد عوض میکند
من اول سوالتون رو خوب نخوندم ببخشید


Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
For i As Byte = 1 To 3
DataGridView1.Columns.Add(0, "")
Next
DataGridView1.Rows.Insert(0, New String() {9, 10, 11})
DataGridView1.Rows.Insert(0, New String() {6, 7, 8})
DataGridView1.Rows.Insert(0, New String() {3, 4, 5})
DataGridView1.Rows.Insert(0, New String() {0, 1, 2})
 
 
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
For i As Byte = 0 To 2
If DataGridView1.Item(i, 0).Value > 2 Then DataGridView1.Item(i, 0).Style.BackColor = Color.Red
If DataGridView1.Item(i, 0).Value < 2 Then DataGridView1.Item(i, 0).Style.BackColor = Color.Green
Next
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim flag As Boolean
Dim i, j, k As Byte
For j = 0 To 2
flag = True
For i = 0 To 3
If DataGridView1.Item(j, i).Value < 2 Then flag = False
Next
If flag Then
For k = 0 To 3
DataGridView1.Item(j, k).Style.BackColor = Color.Red
Next
End If
 
Next
End Sub
End Class

pouyansaraf
یک شنبه 26 دی 1389, 01:54 صبح
خوب موفع ریختن اطلاعات تو دوتا حلقه تو دو تو در Backgroundworker چک کنه
سرعت زیادی نمیگیره