C#DataGridViewRow.Selected = true无法正常工作

时间:2014-12-04 08:11:04

标签: datagridview

我在窗口编程中遇到了问题。 我们有一个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);
            }
        }

1 个答案:

答案 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);
    }
}