MUDAR COR DAS LINHAS DO GRIDVIEW COM CONDICOES
ola pessoal eu prcurei topicos que me ajudace nesta questão e todos que encontrei nao consegui resolver meu problema!
eu estou cirando um sub onde boto uma condição sobre o gridview para que mude de cor as linhas do grid! a condição é a seguinte:
Se o campo Saldo for menor ou igual ao campo minimo então mudar de cor as linhas que estiverem com saldo menor que o minimo!
porem ao invez de mudar apenas as linhas que estao com o saldo menor que o minimo , esta mudando tudo
aqui esta o codigo:
Private Sub MudaCoresGrid()
For Each row As DataGridViewRow In Me.DataGridView1.Rows
For Each cell As DataGridViewCell In row.Cells
If Saldo.Index <= Minimo.Index Then
With Me.DataGridView1.Rows(row.Index).DefaultCellStyle
.BackColor = Color.SpringGreen
.Font = New Font([Ô]Verdana[Ô], 12)
End With
Exit For
End If
Next
Next
End Sub
eu estou cirando um sub onde boto uma condição sobre o gridview para que mude de cor as linhas do grid! a condição é a seguinte:
Se o campo Saldo for menor ou igual ao campo minimo então mudar de cor as linhas que estiverem com saldo menor que o minimo!
porem ao invez de mudar apenas as linhas que estao com o saldo menor que o minimo , esta mudando tudo
aqui esta o codigo:
Private Sub MudaCoresGrid()
For Each row As DataGridViewRow In Me.DataGridView1.Rows
For Each cell As DataGridViewCell In row.Cells
If Saldo.Index <= Minimo.Index Then
With Me.DataGridView1.Rows(row.Index).DefaultCellStyle
.BackColor = Color.SpringGreen
.Font = New Font([Ô]Verdana[Ô], 12)
End With
Exit For
End If
Next
Next
End Sub
Você tem que dar o valor do saldo nessa condição...
O Saldo eu coloquei como sendo a primeira coluna de cada linha e o SaldoMinimo coloquei um valor fixo de 5.
Basta você alterar conforme necessidade.
Private Sub MudaCoresGrid()
Dim Saldo As Integer = 0
Dim SaldoMinimo As Integer = 0
For Each Linha As DataGridViewRow In Me.DataGridView1.Rows
Saldo = Linha.Cells(0).Value
SaldoMinimo = 5
If Saldo <= SaldoMinimo Then
With Me.DataGridView1.Rows(Linha.Index).DefaultCellStyle
.BackColor = Color.SpringGreen
.Font = New Font([Ô]Verdana[Ô], 12)
End With
End If
Next
End Sub
O Saldo eu coloquei como sendo a primeira coluna de cada linha e o SaldoMinimo coloquei um valor fixo de 5.
Basta você alterar conforme necessidade.
Citação::
Você tem que dar o valor do saldo nessa condição...Private Sub MudaCoresGrid()
Dim Saldo As Integer = 0
Dim SaldoMinimo As Integer = 0
For Each Linha As DataGridViewRow In Me.DataGridView1.Rows
Saldo = Linha.Cells(0).Value
SaldoMinimo = 5
If Saldo <= SaldoMinimo Then
With Me.DataGridView1.Rows(Linha.Index).DefaultCellStyle
.BackColor = Color.SpringGreen
.Font = New Font([Ô]Verdana[Ô], 12)
End With
End If
Next
End Sub
O Saldo eu coloquei como sendo a primeira coluna de cada linha e o SaldoMinimo coloquei um valor fixo de 5.
Basta você alterar conforme necessidade.
Bom Dia, amigo
eu entendi o que voce quiz dizer, mas eu tenho na Grid um campo com nome saldo e outro campo com nome Minimo, onde é o prorpio Cliente que Define o Estoque minimo e nao eu!
Certo, e você quer passar por todas as linhas e colunas verificando se algum valor é inferior?
Ou apenas verificar se o Saldo definido pelo cliente é menor que algum saldo em uma coluna especifica?
Ou apenas verificar se o Saldo definido pelo cliente é menor que algum saldo em uma coluna especifica?
Private Sub MudaCoresGrid()
Dim Saldo As Integer = 10
Dim SaldoMinimo As Integer = 15
For Each Linha As DataGridViewRow In Me.DataGridView1.Rows
If Saldo <= Linha.Cells(0).Value Then
With Me.DataGridView1.Rows(Linha.Index).DefaultCellStyle
.BackColor = Color.SpringGreen
.Font = New Font([Ô]Verdana[Ô], 12)
End With
End If
Next
End Sub
Tidy, vc tem que atribuir um valor para variável Saldominimo, através do banco de dados , textbox, ou alguma outra opção , depende do seu projeto.
Edi
Edi
Citação::
Tidy, vc tem que atribuir um valor para variável Saldominimo, através do banco de dados , textbox, ou alguma outra opção , depende do seu projeto.
Edi
Edisimoes vou explicar:
primeiramente tenho um formulario onde eu cadastro o produto com o codigo o nome o saldo e o minimo
tudo em um textbox e clico em salvar em um banco de dados
depois em outro formulario eu consulto todos os produtos que foram cadastrados a partir de um DataGrid,
eu queria fazer que quando o produto X estiver com o valor do campo preenchido com um valor menor que o campo do minimo ele me marcasse a linha com uma cor diferente do resto que nao esta com estoque menor que o minimo
Citação::
Certo, e você quer passar por todas as linhas e colunas verificando se algum valor é inferior?
Ou apenas verificar se o Saldo definido pelo cliente é menor que algum saldo em uma coluna especifica?
Private Sub MudaCoresGrid()
Dim Saldo As Integer = 10
Dim SaldoMinimo As Integer = 15
For Each Linha As DataGridViewRow In Me.DataGridView1.Rows
If Saldo <= Linha.Cells(0).Value Then
With Me.DataGridView1.Rows(Linha.Index).DefaultCellStyle
.BackColor = Color.SpringGreen
.Font = New Font([Ô]Verdana[Ô], 12)
End With
End If
Next
End Sub
isso, passar por todas as linhas verificando o saldo do minimo
vou lhe explicar melhor
primeiramente tenho um formulario onde eu cadastro o produto com o codigo o nome o saldo e o minimo
tudo em um textbox e clico em salvar em um banco de dados
depois em outro formulario eu consulto todos os produtos que foram cadastrados a partir de um DataGrid,
eu queria fazer que quando o produto X estiver com o valor do campo preenchido com um valor menor que o campo do minimo ele me marcasse a linha com uma cor diferente do resto que nao esta com estoque menor que o minimo
Então é isso ai:
Private Sub MudaCoresGrid()
Dim Saldo As Integer = 0
Dim SaldoMinimo As Integer = 15 [ô]Aqui você pega do TextBox
For Each Linha As DataGridViewRow In Me.DataGridView1.Rows
Saldo = Linha.Cells(0).Value [ô]Aqui definimos que o valor do Saldo é o número que estiver na coluna 0
If Saldo <= SaldoMinimo Then
With Me.DataGridView1.Rows(Linha.Index).DefaultCellStyle
.BackColor = Color.SpringGreen
.Font = New Font([Ô]Verdana[Ô], 12)
End With
End If
Next
End Sub
Citação::
Então é isso ai:Private Sub MudaCoresGrid()
Dim Saldo As Integer = 0
Dim SaldoMinimo As Integer = 15 [ô]Aqui você pega do TextBox
For Each Linha As DataGridViewRow In Me.DataGridView1.Rows
Saldo = Linha.Cells(0).Value [ô]Aqui definimos que o valor do Saldo é o número que estiver na coluna 0
If Saldo <= SaldoMinimo Then
With Me.DataGridView1.Rows(Linha.Index).DefaultCellStyle
.BackColor = Color.SpringGreen
.Font = New Font([Ô]Verdana[Ô], 12)
End With
End If
Next
End Sub
Deu o seguinte erro:
A conversão da cadeia de caracteres [ô] [ô] no tipo [ô]Integer[ô] não é válida.
Você adequou o index da coluna onde refere-se ao valor?
Saldo = Linha.Cells(IndexDaColunaSaldo).Value
Citação::
Você adequou o index da coluna onde refere-se ao valor?Saldo = Linha.Cells(IndexDaColunaSaldo).Value
agora sim, entendi! fiz isso agora, e deu certo, mas, ele altera a cor de tudo, enclusive dos produtos que também estao acima do minimno
Tópico encerrado , respostas não são mais permitidas