none
adicionar uma linha no datagridview RRS feed

  • Pergunta

  • Pessoal tenho um datagrid com um bindingsource, queria adicionar nele no inicio duas linhas com um titulo e a soma de uma das colunas, tentei assim mas nesse caso ele coloca por cima da primeira linha que já esta preenchida. Alguem pode me ajudar?

     DGconsolidado2.Rows(0).Selected = True
     DGconsolidado2.CurrentRow.Cells.Item(0).Value = "Valor Disponivel"
     DGconsolidado2.CurrentRow.Cells.Item(2).Value = vldisp

    terça-feira, 5 de fevereiro de 2013 18:59

Respostas

  • DGconsolidado2.Rows.Add()
    Dim ultima As Integer = DGconsolidado2.CurrentRow.Index
    ultima = DGconsolidado2.Rows.Count - 1
    DGconsolidado2.Rows(ultima).Cells(0).Selected = True

    DGconsolidado2.Item(0, ultima).Value = "Valor Disponivel"
    DGconsolidado2.Item(1, ultima).Value = "ufa"
    DGconsolidado2.Item(2, ultima).Value = "Valor Total"
    DGconsolidado2.Item(3, ultima).Value = "ufa"

    Sera que ninguem respondeu porque era facil demais? Ou porque a pergunta era ridicula?

    • Marcado como Resposta RJCERRI quinta-feira, 7 de fevereiro de 2013 18:56
    quinta-feira, 7 de fevereiro de 2013 18:56

Todas as Respostas

  • Fazendo assim

    DGconsolidado2.Rows.Add()
    Me.BSpreco.AddNew()

    Eu vi que ele criou uma linha nova no final do datagrid, como faço pra incluir esses dados que eu quero nessa ultima linha?

    quarta-feira, 6 de fevereiro de 2013 11:12
  • Vi varios exemplos de como setar a linha e a maioria deles mandava fazer assim.

    DGconsolidado2.Rows(ultima).Selected = True
    
    DGconsolidado2.CurrentRow = DGconsolidado2(0, DGconsolidado2.RowCount - 1)


    Na primeira linha da esse erro:

    Index was out of range. Must be non-negative and less than the size of the collection.

    Parameter name: index

    e a segunda linha o vb nem reconhece o comando, mas em todos os topicos que achei essa linha o pessoal respondia dizendo que tinha funcionado. Alguem pode me ajudar?

    quarta-feira, 6 de fevereiro de 2013 12:34
  • Estou tentando assim agora

     For nova = 0 To DGconsolidado2.Rows.Count - 2
                If CBool(DGconsolidado2.Rows(nova).Cells(0).Value = IsDBNull(True)) Then
                    DGconsolidado2.CurrentRow.Cells.Item(0).Value = "Valor Disponivel"
                    DGconsolidado2.CurrentRow.Cells.Item(1).Value = vldisp
                    DGconsolidado2.CurrentRow.Cells.Item(2).Value = "Valor Disponivel"
                    DGconsolidado2.CurrentRow.Cells.Item(3).Value = vldisp
                End If
            Next
    
    mas ele da um erro informando que o valor da coluna 0"ALSER3" não pode ser convertida para tipo boleano, alguem pode me ajudar nesse caso?

    quarta-feira, 6 de fevereiro de 2013 14:21
  • Bem to tentando mais de uma forma, agora eu consigo entrar no if mas fica dando esse erro

    Index was out of range. Must be non-negative and less than the size of the collection.
    Parameter name: index

    quando vai colocar um valor na linha, to parado nisso e achei que fosse ser simples.

    ultima = DGconsolidado2.Rows.Count - 1
            For nova = 0 To DGconsolidado2.Rows.Count - 1
                If nova = ultima Then  'DGconsolidado2.Rows(nova).Cells(0).Value
                    DGconsolidado2.Item(ultima, 0).Value = "Valor Disponivel"
                    DGconsolidado2.Item(ultima, 1).Value = vldisp
                    DGconsolidado2.Item(ultima, 2).Value = "Valor Total"
                    DGconsolidado2.Item(ultima, 3).Value = vldisp
                    
                End If
            Next
    

    Index was out of range. Must be non-negative and less than the size of the collection.
    Parameter name: index

    quarta-feira, 6 de fevereiro de 2013 18:13
  • Fazendo assim dentro do if

     DGconsolidado2.CurrentRow.Cells.Item(0).Value = "Valor Disponivel"
     DGconsolidado2.CurrentRow.Cells.Item(1).Value = vldisp
     DGconsolidado2.CurrentRow.Cells.Item(2).Value = "Valor Disponivel"
     DGconsolidado2.CurrentRow.Cells.Item(3).Value = vldisp

    mas nesse caso ele grava na primeira linha, porque que eu indicando a linha que ele tem que colocar da o erro anteruos?

    quinta-feira, 7 de fevereiro de 2013 12:31
  • Uma coisa que esqueci de avisar, esse datagrid não esta vinculado a nenhum objeto, eu populei ele na mão.
    quinta-feira, 7 de fevereiro de 2013 17:52
  • DGconsolidado2.Rows.Add()
    Dim ultima As Integer = DGconsolidado2.CurrentRow.Index
    ultima = DGconsolidado2.Rows.Count - 1
    DGconsolidado2.Rows(ultima).Cells(0).Selected = True

    DGconsolidado2.Item(0, ultima).Value = "Valor Disponivel"
    DGconsolidado2.Item(1, ultima).Value = "ufa"
    DGconsolidado2.Item(2, ultima).Value = "Valor Total"
    DGconsolidado2.Item(3, ultima).Value = "ufa"

    Sera que ninguem respondeu porque era facil demais? Ou porque a pergunta era ridicula?

    • Marcado como Resposta RJCERRI quinta-feira, 7 de fevereiro de 2013 18:56
    quinta-feira, 7 de fevereiro de 2013 18:56