Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Caros,
Estou fazendo uma pequena listagem de imóveis através de um datagridview, onde o usuário pode selecionar e excluir determinado imóvel.
Consigo excluí-lo, mas tenho que desaparecer com a linha, quando o imóvel for excluído com sucesso. Só que, ao excluir, o vb.net está dando o seguinte erro:
"Não é possível tornar invisível a linha associada à posição do gerenciador de moeda."
Segue o código, onde a linha do erro está em negrito:
Private Sub ExcluiImóvelSelecionadoToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ExcluiImóvelSelecionadoToolStripMenuItem.Click
Dim imovel As String = DataGridView1.CurrentRow.Cells(0).Value
Dim mensagem = MsgBox("Esse procedimento irá excluir definitivamente o imóvel" & vbCrLf & "Tem a certeza disso?", MsgBoxStyle.YesNo, "Atenção!")
If mensagem = MsgBoxResult.Yes Then
Dim conn As New ADODB.Connection
conn.Open(My.Settings.conexao)
conn.Execute("delete from imoveis_rgi where cod = " & imovel & "")
If Err.Description = "" Then
If DataGridView1.CurrentRow.Displayed() Then
DataGridView1.CurrentRow.Visible = False //Neste linha Erro
End If
MsgBox("Imóvel excluído com sucesso!", MsgBoxStyle.OkOnly, "Sucesso!")
Else
MsgBox("Erro na exclusão!" & vbCrLf & Err.Description, MsgBoxStyle.Exclamation, "Sucesso!")
End If
End If
End SubNão. Nem possui essa opção.
mande preencher novamente o table adapter do seu grid na ação de exclusão.
seria algo assim:
this.NomeDoTableAdapter.Fill(this.NomeDoDataSet.NomeDaDataTable);
procure no seu codigo, deve ter essa linha de codigo, pois ela eh executada quando seu grid eh carregado. você soh precisa chamá-la novamente.
isso seria equivalente a dar o databind(), mas essa opção não existe.
Não sei muito de Windows Application mas se você der apenas um DataBind(), ele ja some com a linha ou não?
DataGridView1.DataBind().