如何使用C#在数据网格视图中选中多个复选框

本文关键字:复选框 视图 网格 何使用 数据 数据网 | 更新日期: 2023-09-27 18:29:17

当最终用户使用鼠标首先高亮显示他们需要的单元格时,我需要使用checkbox_checkChanged事件,让他们同时勾选C#应用程序的数据网格视图中的几个复选框。因此,基本上,最终用户将使用鼠标高亮显示数据网格视图中的单元格,然后单击复选框x2,然后在高亮显示单元格的每一行中勾选复选框。

这是我的代码,它显示了一个窗口,说明已经选择了多少行/单元格。然后,我需要勾选数据网格视图中的每个复选框,该行中有一个突出显示的单元格。目前,它将显示记录已选择的行/单元格的窗口,然后单击"确定"按钮时,它会勾选数据网格视图中的每个复选框,而不仅仅是该行中有突出显示单元格的复选框。

private void checkBox2_CheckedChanged(object sender, EventArgs e)
    {
        Int32 selectedCellCount = dgv2.GetCellCount(DataGridViewElementStates.Selected);
        if (selectedCellCount > 0)
        {
            if (dgv2.AreAllCellsSelected(true))
            {
                MessageBox.Show("All cells are selected", "Selected Cells");
            }
            else
            {
                System.Text.StringBuilder sb = new System.Text.StringBuilder();
                for (int i = 0;
                    i < selectedCellCount; i++)
                {
                    sb.Append("Row: ");
                    sb.Append(dgv2.SelectedCells[i].RowIndex.ToString());
                    sb.Append(", Column: ");
                    sb.Append(dgv2.SelectedCells[i].ColumnIndex.ToString());
                    sb.Append(Environment.NewLine);
                }

                sb.Append("Total: " + selectedCellCount.ToString());
                // confirmation
                MessageBox.Show(sb.ToString(), "Selected Cells");
                foreach (DataGridViewRow row in dgv2.Rows)
                {
                    row.Cells[2].Value = checkBox2.Checked && String.IsNullOrEmpty(row.Cells[0].ErrorText);
                }
            }
        }
    }

请帮忙。。。

如何使用C#在数据网格视图中选中多个复选框

我看到您的代码来自这里:http://msdn.microsoft.com/en-us/library/x8x9zk5a.aspx但取而代之的是:

foreach (DataGridViewRow row in dgv2.Rows)
{
    row.Cells[2].Value = checkBox2.Checked && String.IsNullOrEmpty(row.Cells[0].ErrorText);
}

你需要按照文章所说的去做,这将为你指明正确的方向:

for (int i = 0; i < selectedCellCount; i++)
{
dataGridView1.SelectedCells[i].Value = true;
}