2008-10-16 6 views

Répondre

5

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

-1

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.

+0

pourquoi vous donnez votre courrier? ... – eKek0

5

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

Questions connexes