Datagrid复选框单元格
问题描述:
我开发了一个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查询 - 平常的东西。
答
罗兰,
原因可能是因为数据尚未提交到源。 DataGridView的工作方式是“绑定”到源,并保持数据同步。但是,DataGridView中所做的更改不会立即更新DataGridView。它被认为是'肮脏'。
尝试在更改后检查原始数据源,也可以尝试调用BindingContext(..)。EndCurrentEndit();或者类似的尝试,并确保数据承诺。
+0
添加dataGridView1.EndEdit();解决了问题 坦克! – Woland 2009-10-02 11:11:18
请提供一些更多相关信息和代码。上面的内容并没有太多帮助。 – 2009-10-02 10:14:29