Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
即使我选择了另一行,如何使一行保持高亮显示。C#datagridview_C#_Datagridview - Fatal编程技术网

即使我选择了另一行,如何使一行保持高亮显示。C#datagridview

即使我选择了另一行,如何使一行保持高亮显示。C#datagridview,c#,datagridview,C#,Datagridview,我希望高亮显示一行,并且在再次单击该行之前不会删除高亮显示 我尝试使用CLICK事件并添加SELECTED=true,但每次选择另一行时,它都会将SELECTED删除为false 谢谢,我必须承认我对这个解决方案不满意,因为有一个短暂的闪烁,但至少它选择了你想要的方式: List<DataGridViewRow> selectedRows = new List<DataGridViewRow>(); void selectRows() { dataGridVie

我希望高亮显示一行,并且在再次单击该行之前不会删除高亮显示

我尝试使用CLICK事件并添加SELECTED=true,但每次选择另一行时,它都会将SELECTED删除为false


谢谢,

我必须承认我对这个解决方案不满意,因为有一个短暂的闪烁,但至少它选择了你想要的方式:

List<DataGridViewRow> selectedRows = new List<DataGridViewRow>();

void selectRows()
{
    dataGridView1.SuspendLayout();
    foreach (DataGridViewRow r in dataGridView1.Rows) 
             r.Selected = selectedRows.Contains(r);
    dataGridView1.ResumeLayout();
}

private void dataGridView1_MouseClick(object sender, MouseEventArgs e)
{
    DataGridViewRow clickedRow = dataGridView1.CurrentRow;

    if (selectedRows.Contains(clickedRow))
        selectedRows.Remove(clickedRow);
    else
        selectedRows.Add(clickedRow);

    selectRows();
}
List selectedRows=new List();
void selectRows()
{
dataGridView1.SuspendLayout();
foreach(dataGridView1.Rows中的DataGridViewRow r)
r、 Selected=selectedRows.Contains(r);
dataGridView1.ResumeLayout();
}
private void DataGridView1u鼠标单击(对象发送方,鼠标目标)
{
DataGridViewRow clickedRow=dataGridView1.CurrentRow;
如果(selectedRows.Contains(clickedRow))
选择移动。删除(单击移动);
其他的
选择箭头。添加(单击箭头);
选择行();
}

问问题时,至少要努力一点。展示你已经尝试过的东西和你面临的障碍。看到它不起作用,因为它需要改变。。我想模仿一个复选框风格。我试图用另一种方法来做的是,我在datagridview中添加了一列,并在选中时使用X。但是当再次单击时,我没有得到刚才保存的X。dataGridViewInventario.Rows[dataGridViewInventario.CurrentRow.Index]。单元格[0]。Value=“X”;允许多选(!)并设置行。已选=!行。在鼠标单击事件中选择!它不起作用,因为它需要shift No。任何类型的多重选择都需要多重选择,无论是否使用shift或ctrl键