在DataGridView中使用Checkbox选择RowRow

时间:2014-04-07 15:02:15

标签: c# winforms checkbox datagridview datagrid

我有一个带有CheckBox列的Datagrid。我需要从这个数据网格中选择多行,并将SelectedRows转换为另一种形式。我需要的是,当我选中复选框时,所有选中的行仍然必须选中(蓝色高光),直到我将它们传递给另一个表格。我现在可以做到,但只有一行,所选的一行有这个代码

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 
            }
        }
    }

谢谢大家!

1 个答案:

答案 0 :(得分:0)

单击一个项目选择它并解除所有其他项目。 这是标准行为。在GUI标准中明显的方法是教育用户按控制,如果他们不想丢失当前选择,就像他们必须在系统中的任何其他地方。

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