我在窗口编程中遇到了问题。 我们有一个datagridview。其multiselect属性设置为true。目的是在gridview中实现多行删除并从字典列表中删除它们。问题是当我将row.selected设置为true时,它在第二个foreach循环中不起作用。在调试过程中,我发现即使有dataLimits.Rows [cell.RowIndex],该行的Selected属性也不会更改为true .Selected = true; 代码如下:
private void mnuLimitsDelete_Click(object sender, EventArgs e)
{
foreach (DataGridViewCell cell in dataLimits.SelectedCells)
{
int no = int.Parse(dataLimits[0, cell.RowIndex].Value.ToString());
measurement.Limits.Remove(no);
dataLimits.Rows[cell.RowIndex].Selected = true;
}
foreach (DataGridViewRow row in dataLimits.SelectedRows)
{
dataLimits.Rows.Remove(row);
}
}
答案 0 :(得分:0)
如果选择了单元格,则无法选择DatagridVievRow。 主要需求: dgvCombinationsPriceListRows.ClearSelection(); dgvCombinationsPriceListRows.CurrentCell = nullptr; 试试这段代码
private void mnuLimitsDelete_Click(object sender, EventArgs e)
{
DataGridViewRowCollection lSelectedrows = new DataGridViewRowCollection;//add list for after
foreach (DataGridViewCell cell in dataLimits.SelectedCells)
{
int no = int.Parse(dataLimits[0, cell.RowIndex].Value.ToString());
measurement.Limits.Remove(no);
lSelectedrows .Add(cell.RowIndex);//add
}
dgvCombinationsPriceListRows.ClearSelection();//add
dgvCombinationsPriceListRows.CurrentCell = nullptr;//add
dgvCombinationsPriceListRows.MultiSelect = true;//add need for selected rows
dgvCombinationsPriceListRows->SelectedRows = lSelectedrows ;//add
foreach (DataGridViewRow row in dataLimits.SelectedRows)
{
dataLimits.Rows.Remove(row);
}
}