私は databound を持っていますDataGridView
。新しい行が追加され、ユーザーが押すと、Esc行全体を削除したい。これどうやってするの?
6197 次
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 に答える