在 DataGridView 中选择带有复选框的行

本文关键字:复选框 DataGridView 选择 | 更新日期: 2023-09-27 17:57:05

我有一个带有复选框列的数据网格。我需要从此数据网格中选择多行,并将所选行转换为另一种形式。我需要的是,当我选中复选框时,所有选中的行都必须仍然处于选中状态(蓝色突出显示),直到将它们传递给另一个表单。我现在可以做到,但只针对一行,带有此代码的选定行

private void button2_Click(object sender, EventArgs e)
    {                      
        DataTable table = new DataTable();
        foreach (DataGridViewColumn column in dataGridView1.Columns)
        {
            table.Columns.Add(column.Name, typeof(string)); //tipo cell??
        }
        for (int i = 0; i < dataGridView1.SelectedRows.Count; i++)
        {
           table.Rows.Add();
            for (int j = 0; j < dataGridView1.Columns.Count; j++)
            {
                table.Rows[i][j] = dataGridView1.SelectedRows[i].Cells[j].Value;
                fph.dataGridView1.DataSource = table; //DATAGRID DO FORM PH 
            }
        }
    }

谢谢大家!

在 DataGridView 中选择带有复选框的行

单击一个项目将选择该项目并删除所有其他项目。这是标准行为。在GUI标准中,显而易见的方法是教育您的用户,如果他们不想失去当前的选择,就像他们在系统中的其他任何地方一样,就按下控制

如果您不喜欢这样,您将找到一些奇怪的技巧,或者在每个CellMouseDown上检查这是否是复选框列,然后存储所选行并在CellMouseUp上恢复选择。(或类似的东西,没有时间在这里为您测试..)