即使我选择另一行,如何突出显示一行。 C#datagridview

时间:2014-11-25 16:26:46

标签: c# datagridview

我想突出显示一行,而不是删除突出显示,直到我再次点击该行。

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

谢谢,

1 个答案:

答案 0 :(得分:1)

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

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();
}