DELETAR ITEM DATAGRIDVIEW PWLO BOTAO DELETE

JOAOBENEVIDES 07/02/2017 09:55:47
#471461
Bom dia Pessoal , é possivel usar a tecla delete dentro de um datagridview queri poderia usar esta funcao
PERCIFILHO 07/02/2017 10:09:22
#471462
Resposta escolhida
Se você deixou a propriedade do DataGridView: AllowUserToDelete como True, é só você teclar Delete e o registro some.
Agora se você se refere a excluir o registro da tabela, é só você guardar o id da linha, verificar qual é o registro e mandar deletar da tabela;
Tudo depende de com você está preenchendo o DataGridView.
Eu, por exemplo, preencho o DataGridView, fazendo a consulta no banco com LINQ ou com List<>, e vinculo os dados recebidos ao DataGridView com DataSource.
No meu DataGridView, eu insiro uma coluna com uma imagem Delete. Quando clicar nesta coluna, vai perguntar se deseja excluir, aí eu pego o Id que está na linha selecionada e chamo a função que deleta o registro. Então:

No evento CellMouseClick do DataGridView:
if (dgvColumns[e.ColumnIndex].Name == [Ô]Excluir[Ô])
{
deletarId = Convert.ToInt32(dgvs.SelectedRows[0].Cells[[Ô]Id[Ô]].Value);
if (MessageBox.Show([Ô]Deseja realmente excluir esse registro?[Ô], [Ô]Confirma exclusão[Ô], MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
Exclui();
PreencheGrid();
}
}
}


A função que exclui o registro da tabela: No meu caso, eu não excluo o registro, eu apenas gravo na tabela o campo Deleted como True
private void Exclui()
{
// OBS: não exclui o registro, apenas grava o campo Deleted=true
Banco banco;
using (db = new Conexao())
{
banco = db.Banco.Where(x => x.Banco_Id == Gerais.BancoId).FirstOrDefault<Banco>();
}
banco.Deleted = true;

using (db = new Conexao())
{
db.Entry(banco).State = System.Data.Entity.EntityState.Modified;
db.SaveChanges();
}
}
NILSONTRES 07/02/2017 10:47:38
#471464
Você pode também criar uma coluna button
Tópico encerrado , respostas não são mais permitidas