【问题标题】: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)
}

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-12
    • 2016-07-11
    • 2014-02-04
    • 2011-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多