J'ai une base de données DataGridView
. Lorsqu'une nouvelle ligne est ajoutée et que l'utilisateur appuie sur Esc Je souhaite supprimer la ligne entière. Comment puis-je faire ceci?Comment supprimer une ligne DataGridView en cours d'ajout lorsque l'utilisateur annule le processus d'ajout?
Répondre
assez facile en fait
private void dataGridView1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == (char)27)
{
if (dataGridView1.Rows.Count > 0)
{
dataGridView1.Rows.RemoveAt(dataGridView1.Rows.Count - 1);
MessageBox.Show("Last row deleted!");
}
e.Handled = true;
}
}
mais prendre à l'esprit que:
Les lignes ne peuvent pas être programme supprimés à moins que le DataGridView est lié aux données à IBindingList qui prend en charge la notification de changement et permet la suppression
Les lignes ne peuvent pas être supprimées par programme à moins que le DataGridView
est lié à un IBindingList
qui prend en charge la notification de modification et autorise la suppression.
Si vous souhaitez supprimer des lignes du DataGrid, vous devez utiliser une BindingSource au lieu d'une liste, sinon vous obtiendrez une exception si vous le faites.
essayez ceci:
public partial class YourForm : Form {
private BindingSource _source = new BindingSource();
public YourForm() {
List<Model> list = _service.GetList();
_source.DataSource = list;
_grid.DataSource = _source;
}
}
Maintenant, vous pouvez jouer avec votre source de données et la grille se comporter. N'oubliez pas d'appeler _grid.Refresh() après chaque changement.
Cheers,
Andre Carlucci
pourquoi vous donnez votre courrier? ... – eKek0