datagridview

Parreira

Membro
Boas pessoal
Como posso apagar uma linha no datagridview, eu tenho a linha de codigo, mas quando chega a ultima linha do datagrid ele da erro.

dgexcel.Rows.Remove(dgexcel.Rows(dgexcel.CurrentRow.Index))

Obrigado
 
acrescenta uma verificação:

Código:
If DgExcel.CurrentRowIndex > -1 Then
      dgexcel.Rows.Remove(dgexcel.Rows(dgexcel.CurrentRo w.Index))
End If

Passo a explicar:
A datagridview tem uma propriedade que é: .AllowAddRows.

Quando esta propriedade está activa, aparece sempre uma linha extra na datagrid com um *. Essa linha tem sempre o index -1 e a datagrid não permite a eliminação dessa linha. Essa linha é sempre a ultima, dai ser a causa do teu erro.

Deduzi isto mas posso estar errado porque não estou a ver o resto do código mas se tiveres essa opção = True, é bem provável que seja.

Depois diz qualquer coisa.
 
Um ciclo para apagar faz-se sempre da última para a primeira linha. Experimenta dessa forma que já não deve dar erro.

Depois deves verifica, como o PNDmartins já disse, se a ultima linha é uma linha em branco. Usa é este método (adaptando é claro)

If Not DataGridView1.CurrentRow.IsNewRow Then
' teu código
End If
 
Back
Topo