【问题标题】:Remember checked checkboxes in DataGridView记住 DataGridView 中的选中复选框
【发布时间】:2017-07-06 09:47:24
【问题描述】:
我有一个 DataGridView,其中第一列是 DataGridViewCheckBoxColumn。用户选中一些复选框以指示要删除哪些项目。
当我隐藏表单并重新加载它时,我需要 DataGridView 记住选中了哪些复选框。
【问题讨论】:
标签:
c#
winforms
checkbox
datagridview
【解决方案1】:
您至少需要在关闭表单时保存更改(如果您只是隐藏它,为什么要重新加载呢?)。
我通常解决这个问题的方法是听 Dgv 的 CellEndEdit 事件:
SomeDataGridView.CellEndEdit += ObjectPropertyChanged
然后在回调中,您可以使用 Dgv 的“DataBoundItem”道具取回对象并根据需要处理/保存它:
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)
}
您还可以进行数据库更新、写入文本文件、保存在配置中,...