2017-07-06 51 views
-1

我有一个DataGridView第一列是DataGridViewCheckBoxColumn。用户检查一些复选框以指示哪些项目将被删除。还记得在DataGridView检查复选框

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

+0

您需要保存您的复选框列状态的静态列表 –

+0

欢迎SO!请查看以下文章并适当更新问题: https://stackoverflow.com/help/how-to-ask – garfbradaz

回答

0

您需要至少在关闭窗体的位置保存更改(如果您只是隐藏它,为什么要重新载入呢?)。 我平时工作这一点的方式是听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) 
} 

你也可以做数据库更新,写入一个文本文件,保存在配置上,...