1

私は databound を持っていますDataGridView。新しい行が追加され、ユーザーが押すと、Esc行全体を削除したい。これどうやってするの?

4

3 に答える 3

5

DataGrid から行を削除する場合は、リストの代わりに BindingSource を使用する必要があります。そうしないと、実行時に例外が発生します。

これを試して:

public partial class YourForm : Form {

  private BindingSource _source = new BindingSource();

  public YourForm() {
    List<Model> list = _service.GetList();
    _source.DataSource = list;
    _grid.DataSource = _source;
  }
}

これで、データソースをいじることができ、グリッドは自動的に動作します。変更するたびに _grid.Refresh() を呼び出すことを忘れないでください。

乾杯、

アンドレ・カルッチ

于 2009-09-08T12:59:59.853 に答える
5

実際にはかなり簡単

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;
    }
}

ただし、次の点に注意してください。

変更通知をサポートし、削除を許可する IBindingList に DataGridView がデータ バインドされていない限り、行をプログラムで削除することはできません。

于 2008-10-16T09:50:36.137 に答える
-1

が変更通知をサポートし、削除を許可するDataGridViewにデータ バインドされていない限り、行をプログラムで削除することはできません。IBindingList

于 2009-03-25T13:27:04.007 に答える