我有一个带有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
}
}
}
谢谢大家!
答案 0 :(得分:0)
单击一个项目选择它并解除所有其他项目。 这是标准行为。在GUI标准中明显的方法是教育用户按控制,如果他们不想丢失当前选择,就像他们必须在系统中的任何其他地方。
如果您不喜欢这样,您将找到一些奇怪的技巧或在每个CellMouseDown上检查这是否是Checkbox列,然后存储选定的行并在CellMouseUp上恢复选择。 (或类似的东西,没时间在这里为你测试..)