Подтвердить что ты не робот

Как выбрать полную строку DataGridView, когда пользователь нажимает на ячейку этой строки?

У меня есть dataGridView, и мне нужно, чтобы при щелчке пользователем по любой ячейке была выбрана вся строка, содержащая эту ячейку. (он имеет многосекундный дисбаланс) Я попытался получить currentRowIndex следующим образом

 int Index = dataGridView1.CurrentCell.RowIndex;

Однако я не уверен, как использовать индекс, чтобы выбрать эту строку. Пробовал этот и другие шесть способов без успеха:

dataGridView1.Select(Index);

Знаете ли вы, как я могу это сделать?

4b9b3361

Ответ 2

Если вы хотите, чтобы строка была выбрана программно, вы должны использовать событие щелчка ячейки datagridview: показано на VB.net и С#

VB.Net

Private Sub dgvGrid_CellClick(sender as System.Object, e as System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvGrid.CellClick
    If e.RowIndex < 0 Then
        Exit Sub
    End If

    intIndex = e.RowIndex
    dgvGrid.Rows(intIndex).Selected = True
Exit Sub

С#

private void dgvRptTables_CellClick(System.Object sender, System.Windows.Forms.DataGridViewCellEventArgs e)
{
    if (e.RowIndex < 0) {
        return;
    }

    int index = e.RowIndex;
    dgvGrid.Rows[index].Selected = true;
}

Ответ 3

В свойствах DataGridView, Set

  • MultiSelect → True
  • SelectionMode → FullRowSelect

6cAru.jpg

Ответ 4

Возможно, что-то вроде этого

protected override void Render(HtmlTextWriter writer)
{
    foreach (GridViewRow row in Results.Rows)
    {
        if (row.RowType == DataControlRowType.DataRow)
        {
            row.Attributes["onmouseover"] = "this.style.cursor='pointer';";
            row.CssClass = "rowHover";
            row.ToolTip = "Click row to view person history";
            row.Attributes.Add("onclick", this.ClientScript.GetPostBackClientHyperlink(this.Results,"Select$" & r.RowIndex , true));
        }
    }

    base.Render(writer);
}