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的前后事件