PDA

View Full Version : آموزش: رنگی کردن ردیفی از DataGridView که مقدار یکی از ستونهاش عدد منفی هست



y.saied
چهارشنبه 21 فروردین 1392, 23:53 عصر
سلام دوستان، خیلی گشتم ولی نتوسنتم یه جواب ساده و کامل پیدا کنم
من با دستورات زیر اطلاعات بانک رو در دیتاگرید میریزم

'------------ for DataGrid
Dim Da As New OleDbDataAdapter("select * from Sanad order by sno asc", "provider=microsoft.jet.oledb.4.0; data source=" & Application.StartupPath() & "\DBase.mdb")
Dim dt As New DataTable()
Da.Fill(dt) ' براي پر کردن ديتاگريدويو
'----------------- کار با ديتاگريدويو
Dim dv As New DataView(dt)
DGView.DataSource = dv
DGView.Columns.Item(2).HeaderText = "تاریخ"
DGView.Columns.Item(3).HeaderText = "مبلغ"
DGView.Columns.Item(4).HeaderText = "شرح حساب"
DGView.Columns.Item(0).Visible = False
DGView.Columns.Item(1).Visible = False
DGView.ClearSelection() ' براي اينکه فوکاس نگيرد
dt.Dispose()
Da.Dispose()



102622
میخوام ردیف هایی رو که مبلغ آنها بصورت منفی هستش با رنگ قرمز متمایز کنم.
در ضمن بنده مبالغ رو بصورت رشته در دیتابیس ذخیره کردم.
ممنون که جواب میدین

gilsoft
پنج شنبه 22 فروردین 1392, 02:16 صبح
میخوام ردیف هایی رو که مبلغ آنها بصورت منفی هستش با رنگ قرمز متمایز کنم.
در ضمن بنده مبالغ رو بصورت رشته در دیتابیس ذخیره کردم.

سلام دوست عزیز

اینم کد مربوطه :
Private Sub DataGridView1_DataBindingComplete(sender As Object, e As System.Windows.Forms.DataGridViewBindingCompleteEv entArgs) Handles DataGridView1.DataBindingComplete
For i As Integer = 0 To DataGridView1.Rows.Count - 1
If CLng(DataGridView1.Rows(i).Cells(3).Value) < 0 Then
DataGridView1.Rows(i).Cells(3).Style.BackColor = Color.Pink
Else
DataGridView1.Rows(i).Cells(3).Style.BackColor = Color.Empty
End If
Next
End Sub

(البته روشهای دیگری هم وجود داره)

موفق باشید

gilsoft
پنج شنبه 22 فروردین 1392, 02:48 صبح
اینم یک روش دیگه :
Private Sub DataGridView1_CellEndEdit(sender As Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellEndEdit
Console.WriteLine("CellEndEdit {0},{1}", e.RowIndex, e.ColumnIndex)
Try
If e.ColumnIndex = 3 Then
If CLng(DataGridView1.Rows(e.RowIndex).Cells(3).Value ) < 0 Then
DataGridView1.Rows(e.RowIndex).Cells(3).Style.Back Color = Color.Pink
Else
DataGridView1.Rows(e.RowIndex).Cells(3).Style.Back Color = Color.Empty
End If
End If
Catch ex As Exception
End Try
End Sub

Private Sub DataGridView1_CellFormatting(sender As Object, e As System.Windows.Forms.DataGridViewCellFormattingEve ntArgs) Handles DataGridView1.CellFormatting
Console.WriteLine("CellFormatting {0},{1} = {2}", e.RowIndex, e.ColumnIndex, e.Value)
Try
If e.ColumnIndex = 3 Then
If CLng(DataGridView1.Rows(e.RowIndex).Cells(3).Value ) < 0 Then
DataGridView1.Rows(e.RowIndex).Cells(3).Style.Back Color = Color.Pink
Else
DataGridView1.Rows(e.RowIndex).Cells(3).Style.Back Color = Color.Empty
End If
End If
Catch ex As Exception
End Try
End Sub