记住DataGridView中的已选中复选框

时间:2017-07-06 09:47:24

标签: c# winforms checkbox datagridview

我有一个DataGridView,其中第一列是DataGridViewCheckBoxColumn。用户检查一些复选框以指示要删除的项目。

当我隐藏表单并重新加载它时,我需要DataGridView来记住检查了哪些复选框。

1 个答案:

答案 0 :(得分:0)

您需要至少在关闭表单时保存更改(如果您只是隐藏它,为什么要重新加载?)。 我通常采用的方法是听Dgv的CellEndEdit事件:

SomeDataGridView.CellEndEdit += ObjectPropertyChanged

然后在回调中,您可以使用" DataBoundItem"来恢复对象。 Dgv的支柱和处理/保存但是你需要:

protected virtual void ObjectPropertyChanged(object sender, DataGridViewVellEventArgs e)
{
  var selectedObject = ((DataGridView)sender).Rows[e.RowIndex].DataBoundItem;
  //Assuming you stored in a List and each Object has an ID as prop:
  var indx = _Objects.IndexOf(_Objects.Where(o => o.ID.Equals(selectedObject.ID)))
  _Objects.Remove(indx)
  _Objects.Insert(indx, selectedObject)
}

您还可以进行数据库更新,写入文本文件,保存配置,...