C# 数据网格复选框单元格

C# 数据网格复选框单元格,c#,.net,winforms,datagridview,checkbox,C#,.net,Winforms,Datagridview,Checkbox,我开发了一个Windows窗体应用程序,它有一个带有复选框的datagrid。如果我按下一个按钮,那么我想得到所有选中的行,并对它们执行一些操作。 问题是当按下按钮时,它无法识别最新的复选框操作。这就像是落后了一步 我的代码是: private void copyToToolStripMenuItem_Click(object sender, EventArgs e) { dataGridView1.ClearSelection(); Dialog

我开发了一个Windows窗体应用程序,它有一个带有复选框的datagrid。如果我按下一个按钮,那么我想得到所有选中的行,并对它们执行一些操作。 问题是当按下按钮时,它无法识别最新的复选框操作。这就像是落后了一步

我的代码是:

    private void copyToToolStripMenuItem_Click(object sender, EventArgs e)
    {
        dataGridView1.ClearSelection();
        DialogResult result = this.folderBrowserDialog1.ShowDialog();
        if (result == DialogResult.OK)
        {
            string foldername = this.folderBrowserDialog1.SelectedPath;
            foreach (DataGridViewRow row in dataGridView1.Rows)
            {
                if (row.Cells[0].Value != null)
                {
                    if ((bool)row.Cells[0].Value == true)
                    {
                        try
                        {
                            string[] vars = row.Cells[1].Value.ToString().Split('\\');
                            System.IO.File.Copy(row.Cells[1].Value.ToString(), foldername + @"\" + vars[vars.Length - 1], true);
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show(ex.ToString());
                        }
                    }
                }
            }
        }
    }
数据来自SQL查询——这是常见的东西。

Roland

原因可能是数据尚未提交到源。DataGridView的工作方式是,它“绑定”到源,并保持数据同步。但是,在DataGridView中所做的更改不会立即更新DataGridView。它被认为是“脏的”


尝试在更改后检查原始数据源,也可以尝试调用BindingContext(..).EndCurrentEndit();或类似的操作,以确保提交数据。

请提供更多相关信息和代码。以上这些都帮不了什么忙。