Winforms datagridview鼠标下键清除上一选择行

Winforms datagridview鼠标下键清除上一选择行,winforms,datagridview,Winforms,Datagridview,我设置了DataGridViewSelectionMode.FullRowSelect模式,设置MultiSelect=true,我想当我选择一行1时,触发另一行2也被选中,它可以通过实现CellClick事件正常工作,但当我在任何一行按下鼠标下键(按住)时,第2行显示为未选中,即使我使用CellMouseDown事件,我可以按下鼠标单击(按住)一行而不影响以前选定的行吗?谢谢 这是我的密码: private void _dataGridView_CellClick(object sender,

我设置了
DataGridViewSelectionMode.FullRowSelect
模式,设置
MultiSelect=true
,我想当我选择一行1时,触发另一行2也被选中,它可以通过实现
CellClick
事件正常工作,但当我在任何一行按下鼠标下键(按住)时,第2行显示为未选中,即使我使用
CellMouseDown
事件,我可以按下鼠标单击(按住)一行而不影响以前选定的行吗?谢谢

这是我的密码:

private void _dataGridView_CellClick(object sender, DataGridViewCellEventArgs e)
    {
        GridColumns currRow = (GridColumns)_dataGridView.Rows[e.RowIndex].DataBoundItem;
        string currRowUID = currRow.GetRowUID();
        if (e.RowIndex + 1 < _dataGridView.RowCount)
        {
            GridColumns nextRow = (GridColumns)_dataGridView.Rows[e.RowIndex + 1].DataBoundItem;
            string nextRowUID = nextRow.GetRowUID();
            if (currRowUID == nextRowUID)
                if (!_dataGridView.Rows[e.RowIndex + 1].Selected)
                {
                    _dataGridView.Rows[e.RowIndex + 1].Selected = true;
                    _dataGridView.Refresh();
                }
        }
        if (e.RowIndex - 1 > -1)
        {
            GridColumns nextRow = (GridColumns)_dataGridView.Rows[e.RowIndex - 1].DataBoundItem;
            string nextRowUID = nextRow.GetRowUID();
            if (currRowUID == nextRowUID)
                if (!_dataGridView.Rows[e.RowIndex - 1].Selected)
                {
                    _dataGridView.Rows[e.RowIndex - 1].Selected = true;
                    _dataGridView.Refresh();
                }
        }

    }
private void\u dataGridView\u CellClick(对象发送方,DataGridViewCellEventArgs e)
{
GridColumns currRow=(GridColumns)\u dataGridView.Rows[e.RowIndex].DataBoundItem;
字符串currRowUID=currRow.GetRowUID();
if(e.RowIndex+1<\u dataGridView.RowCount)
{
GridColumns nextRow=(GridColumns)\u dataGridView.Rows[e.RowIndex+1].DataBoundItem;
字符串nextRowUID=nextRow.GetRowUID();
if(currowuid==nextRowUID)
如果(!\u dataGridView.Rows[e.RowIndex+1]。选中)
{
_dataGridView.Rows[e.RowIndex+1].Selected=true;
_dataGridView.Refresh();
}
}
如果(如行索引-1>-1)
{
GridColumns nextRow=(GridColumns)\u dataGridView.Rows[e.RowIndex-1].DataBoundItem;
字符串nextRowUID=nextRow.GetRowUID();
if(currowuid==nextRowUID)
如果(!\u dataGridView.Rows[e.RowIndex-1]。选中)
{
_dataGridView.Rows[e.RowIndex-1].Selected=true;
_dataGridView.Refresh();
}
}
}

要选择多行,您需要同时按下
ctrl
键。@γηρ∑κωδ'αε∑π∑λ∧λ∑δ∑κμε我需要选择一行,同时选择另一行,而不是按ctrl键解决我的问题,添加cellmouseclick的前后事件