PULAR LINHA NA DATAGRIDVIEW

PERCIFILHO 08/09/2011 10:10:54
#383686
Olá, amigos, estou querendo fazer uma coisa, não sei se é possível, mas deve ser...
Num DataGridView, mostro todos os movimentos de um produto no estoque e na coluna 4, se for movimento de Ajuste, aparece escrito, senão, fica em branco.
Fiz com que se for movimento de ajuste, a linha ficasse funco branco e cor da fonte vermelho.
Agora eu queria fazer com que ao percorrer o DataGridView com as setas, quando encontrasse esccrito na coluna 4 a palavra Ajuste, o cursor pulasse essa linha, indo para a linha seguinte (acima ou abaixo).
Se é que você me entenderam, tem como fazer isso?

Até mais.
ALTAIR148 08/09/2011 10:53:01
#383695
Bom dia,

Amigo tenta assim:


Dim varlinha As Integer
varlinha = 0
If Me.DataGridView1.CurrentRow.Cells(0).Value = [Ô]Ajuste[Ô] Then
varlinha = DataGridView1.CurrentRow.Index
varlinha += 1
DataGridView1.CurrentCell = DataGridView1.Rows(varlinha).Cells(4)
End If



Dessa forma ele vai pular para a linha seguinte.

Até mais.
PERCIFILHO 08/09/2011 10:54:56
#383696
Mas em qual evento eu coloco esse código?

Até mais.
ALTAIR148 08/09/2011 12:23:25
#383713
Bom,

Estava testando aqui, e se colocar para quando vc utilizar as setas da erro, o motivo não sei ainda. Serve para quando clicar na linha?

PERCIFILHO 08/09/2011 13:38:44
#383720
é assim, vamos supor que a linha que está com o movimento de ajuste seja a 5a. linha.
Então, quando abre o formulário, a linha selecionada é a primeira. O usuário vai com a seta para baixo, navegando pelos registros do DataGridView, passa para a segunda, terceira, quarta linha e quando clicar seta para baixo, ele pula a quinta linha e vai para a sexta linha, [Ô]pulando[Ô], assim, a linha onde o movimento é de ajuste.
Deu para entender?

Até mais.
ALTAIR148 08/09/2011 21:26:15
#383781
Boa noite,

Colega tenta assim:

Private Sub DataGridView1_CellEnter(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellEnter
Try
Dim varlinha As Integer
varlinha = 0
If Me.DataGridView1.CurrentRow.Cells(0).Value = [Ô]Ajuste[Ô] Then
varlinha = DataGridView1.CurrentRow.Index
varlinha += 1
DataGridView1.CurrentCell = DataGridView1.Rows(varlinha).Cells(4)
End If
Catch a As Exception

End Try
End Sub



Espero ter ajudado...
PERCIFILHO 09/09/2011 07:18:00
#383785
Bom dia, amigo, deu certo. Mas e for a primeira linha que eu tenha que pular?

Até mais.
PERCIFILHO 09/09/2011 07:43:52
#383786
Já resolvi. Obrigado pela ajuda.
Até mais.
ALTAIR148 09/09/2011 07:48:44
#383788
Bom dia,

Posta ai como ficou seu código final, pode ajudar pessoas futuramente, não se esqueça de fechar o tópico....

Abraços...
PERCIFILHO 09/09/2011 08:07:17
#383790
No evento Load do formulário, eu preencho a grid.
Depois eu faço um laço, para alterar a cor e fundo das linhas onde a coluna 4 está escrito AJUSTE.
E se a primeira linha for a que tiver que pular, ele passa o foco para a segunda linha:

For i As Integer = 0 To Dgv.Rows.Count - 1
If Dgv.Rows(i).Cells(4).Value = [Ô]* AJUSTE *[Ô] Then
Dgv.Rows(i).DefaultCellStyle.BackColor = Color.White
Dgv.Rows(i).DefaultCellStyle.ForeColor = Color.Red
If i = 0 Then
Dgv.CurrentCell = Dgv.Rows(1).Cells(4)
End If
End If
Next

Aí, no evento CellEnter da Grid, o código que você postou:

Private Sub Dgv_CellEnter(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles Dgv.CellEnter
Try
Dim varlinha As Integer
varlinha = 0
If Dgv.CurrentRow.Cells(4).Value = [Ô]* AJUSTE *[Ô] Then
varlinha = Dgv.CurrentRow.Index
varlinha += 1
Dgv.CurrentCell = Dgv.Rows(varlinha).Cells(4)
End If
Catch a As Exception

End Try
End Sub

Funcionou.
Agora eu preciso saber o seguinte:
Na imagem, repare que na linha selecionada, na coluna data fica pontilhado. Não tem como o registro ficar selecionado, sem a coluna ficar pontilhada. Existe alguma propriedade que tenho que alterar?

Até mais.
PERCIFILHO 09/09/2011 08:12:21
#383791
Esqueci de enviar a imagem. Aí está.
Página 1 de 2 [12 registro(s)]
Tópico encerrado , respostas não são mais permitidas