2012-12-02 9 views
39

Mam dataGridView i potrzebuję tego, gdy użytkownik kliknie na dowolną komórkę również wybrany jest cały wiersz zawierający tę komórkę. (To multiselect disbaled) Próbowałem coraz currentRowIndex jak tenJak wybrać pełny wiersz danychGridView, gdy użytkownik kliknie komórkę tego wiersza?

int Index = dataGridView1.CurrentCell.RowIndex; 

Jednak nie jestem pewien, w jaki sposób korzystać z indeksu, aby wybrać ten wiersz. próbował tego i innych sześć sposobów bez powodzenia:

dataGridView1.Select(Index); 

Znasz sposób mogę to zrobić?

Odpowiedz

6

Jeśli chcesz wiersz wybrany programowo, należy użyć komórek zdarzenie click DataGridView za: pokazane w VB.NET i C#

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 

C#

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; 
} 
+0

Jak powiązać zdarzenie z datagridview? – Touhid

1

mógłby zrobić coś takiego

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's history"; 
      row.Attributes.Add("onclick", this.ClientScript.GetPostBackClientHyperlink(this.Results,"Select$" & r.RowIndex , true)); 
     } 
    } 

    base.Render(writer); 
} 
2

we właściwościach DataGridView, Ustaw

  • MultiSelect -> prawda
  • SelectionMode -> FullRowSelect

Powiązane problemy