Naszyn celem jest kolorowanie wierszy w zależności od jakiegoś nam wybranego czynnika, tak jak poniżej:
Do kolorowania wierszy służy kod:
1 2 |
Me.TabelaDataGridView.Rows(i).Cells("DataGridViewTextBoxColumn3").Value Is DBNull.Value Then Me.TabelaDataGridView.Rows(i).Cells("DataGridViewTextBoxColumn3").Style.BackColor = Color.White |
Aby użyć tego kodu musimy pamiętać o kilku czynnikach, pusta komórka oznaczana jest jako DBNull i musimy użyć pętli która ponumeruje nam nasze wiersze:
1 |
For i As Integer = 0 To Me.TabelaDataGridView.Rows.Count - 1 |
Czyli budowa naszego suba będzie natepująca
[important]
Sub
For
If
Else
Next
End Sub
[/important] Przekładając na polski „Dla komórki jeśli jej parametr jest x daj kolor y” . nasz sub przypisujemy do datagrid za pomocą dwukrotnego kliknięcia na „CellFormating” Tworzy nam się Sub którego wypełniamy kodem (przykładowy kod):
1 2 3 4 5 6 7 8 9 10 11 |
For i As Integer = 0 To Me.TabelaDataGridView.Rows.Count - 1 If Me.TabelaDataGridView.Rows(i).Cells("DataGridViewTextBoxColumn3").Value Is DBNull.Value Then Me.TabelaDataGridView.Rows(i).Cells("DataGridViewTextBoxColumn3").Style.BackColor = Color.White Else If Me.TabelaDataGridView.Rows(i).Cells("DataGridViewTextBoxColumn3").Value = 0 Then Me.TabelaDataGridView.Rows(i).Cells("DataGridViewTextBoxColumn3").Style.BackColor = Color.LightGreen Else Me.TabelaDataGridView.Rows(i).Cells("DataGridViewTextBoxColumn3").Style.BackColor = Color.Tomato End If End If Next |
Kod ten będzie kolorował na bialo komórki bez numeru, na zielono gdy komórka będzie miała cyfre 0, a na czerwono gdy komórka będzie miała cyfre większą od 0. Najwięcej problemu sprawi napewno „.Cells(„DataGridViewTextBoxColumn3″).” ten element kodu należy w miejsce DataGridViewTextBoxColumn3 wpisać nazwe kolumny po której ma być wyszukiwany interesująca nas wartość. Jeśli standardowa nazwa kolumny nie działa należy wejść Tasks>Edit Columns… i zobaczyć jaki numer ma nasza kolumna, tak jak na obrazku: I powinno zadziałać, można wykonywać z tym kodem różnego rodzaju modyfikacje np:
1 2 |
Me.TabelaDataGridView.Rows(i).Cells("DataGridViewTextBoxColumn3").Value Is DBNull.Value Then Me.TabelaDataGridView.Rows(i).DefaultCellStyle.BackColor = Color.Aqua |
Taka modyfikacja spowoduje, że cały wiersz będzie podkreślony na niebiesko a nie tylko komórka.
Jeśli ktoś nie wie jak utworzyć nowy projekt:
Jeśli ktoś nie wie jak dodać baze danych:
Jeśli ktoś chce pobrać projekt: Kolorowe_wiersze
Jeśli ktoś ma jakieś pytania lub chce pozmieniać kod tak aby był alfabet bądz coś innego prosze pisać w komętarzach i postaram się pomóc w zmianie kodu.
1 komentarz
a w jaki najprostszy sposób usunąć wybrany wiersz z dataGridView w vb.net