• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

passado

Contar linhas com conteudo especifico de datagridview

10 mensagens neste tópico

Boas pessoal eu queria contar as linhas que continham numa determinada celula uma determinada imagem do imagelist, e possivel fazer isso?

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Podes tentar fazer isso no evento CellFormating da datagridview.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pesquisa no google por esse evento em vb .net para saberes como o podes utilizar.

Tb não tenho mta experiencia em windows forms e vb .net para ter uma solução agora disponivel.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

eu sei usar o evento eu nao estou e a ver como fazer para contar as linhas cujo a celula X tem la dentro a imagem Y :S

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tens q ver o q precisas e o q queres retirar e adaptar ao teu código.

private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
        {
            DataGridView dgv = sender as DataGridView;
            if (dgv == null)
            {
                return;
            }

            // Assim tens o valor em texto
            string texto = dgv.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();

            // Aqui tens o objecto q foi feito o databound a esta linha, cuidado q o var é .net 3.5, usa o tipo certo.
            var item = dgv.Rows[e.RowIndex].DataBoundItem; 
        }

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Private Sub DataGridView1_CellFormatting(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellFormattingEventArgs) Handles DataGridView1.CellFormatting
        Dim cont As Integer
        cont = 0
        For i = 0 To DataGridView1.RowCount - 1
            If DataGridView1.Rows(i).Cells(7).Value.ImageList1.Images(3) Then
                cont = cont + 1
            End If
        Next
        If cont > 1 Then
            MsgBox("Teste")
        End If
    End Sub

Fiz isto, mas tenho um erro nesta linha

 If DataGridView1.Rows(i).Cells(7).Value.ImageList1.Images(3) Then

eu nao consigo por o "=" depois de "value" fica com erro

Consegues ajudarme?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não devias tar a fazer um for aí dentro, isso já vai percorrer todas as linhas, se ainda acrescentas um for a cada linha estás a multiplicar a contagem, não me parece q seja isso q queiras.

Quanto ao erro tens q dar mais detalhes, tipo a mensagem de erro e o q estavas a fazer qd aconteceu.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

eu coloquei o for para depois conseguir contar as linhas

o erro e este:

O índice estava fora do intervalo. Tem de ser não negativo e inferior ao tamanho da colecção. Nome do parâmetro: index

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Resolvi o problema de outra maneira, tenho um processo que adiciona a imagem consoante um criterio, meti ai a linha

cont = cont + 1

e ta feito

;D

obrigado na mesma pela disponibilidade

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora