选择最后一行时,Datagridview SelectedRows.Count始终为零

时间:2014-01-07 08:55:12

标签: c# datagridview

我有一个datagridview,我在其中设置了allow user以将row属性添加到false。

我还让它只能在datagridview上进行全视图选择。

用户通过按工具条的“+”按钮将行添加到数据网格中。通过将数据拖动到添加了绑定导航器工具条的表单来创建DGV。

我的问题是在我的行删除代码中,我检查

private void bindingNavigatorDeleteItem_Click(object sender, EventArgs e)
{
    try
    {
        if (dgvUsers.SelectedRows.Count > 0 && dgvUsers.Rows[0].Selected)
            MessageBox.Show("You cannot remove the user admin");
        else
        {
            if (MessageBox.Show("Are you sure you want to remove the user?", "Confirm", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                int code = 0;

                UserService userService = new UserService();

                if (dgvUsers.SelectedRows.Count > 0)
                {
                    int selectedrowindex = dgvUsers.SelectedCells[0].RowIndex;

                    DataGridViewRow selectedRow = dgvUsers.Rows[selectedrowindex];

                    code = (int)(selectedRow.Cells[0].Value);

                    if (GlobalClass.SessionId == "admin")
                    {
                        userService.RemoveUsers(code);
                    }
                    else
                        MessageBox.Show("Only username 'admin' can remove users");
                }
            }
        }
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}

当我选择最后一行进行删除时,SelectedRows.Count = 0.但是当我选择任何其他行时它为“1”。这是为什么?

1 个答案:

答案 0 :(得分:6)

您可以检查“SelectionMode”属性是否设置为FullRowSelect?

在MSDN中写道:

“SelectionMode属性必须设置为FullRowSelect或RowHeaderSelect,以便使用选定的行填充SelectedRows属性。”