2012-12-02 7 views
39

Ho un dataGridView e ho bisogno che quando l'utente fa clic su qualsiasi cella viene selezionata anche l'intera riga che contiene questa cella. (È multiselect disbaled) ho provato ricevendo il currentRowIndex come questoCome si seleziona una riga dataGridView completa quando l'utente fa clic su una cella di quella riga?

int Index = dataGridView1.CurrentCell.RowIndex; 

Tuttavia, io non sono sicuro di come utilizzare l'indice al fine di selezionare quella riga. provato questo e su altri sei modi senza successo:

dataGridView1.Select(Index); 

Sai un senso che posso fare questo?

risposta

78

È necessario impostare SelectionMode di datagridview su FullRowMode.

Nota: In Visual Studio 2013, con .NET 4.5 la proprietà è chiamato FullRowSelect, vedere https://msdn.microsoft.com/en-us/library/3c89df86(v=vs.110).aspx

+4

Hahah Molto più semplice più di quanto pensassi. Grazie. –

+3

Utilizzare: 'dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;' – bshea

6

Se si desidera che la riga selezionata programatically, si usa evento cellule click del DataGridView: mostrato in VB.net e 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

Come si associa l'evento con datagridview? – Touhid

1

potrebbe fare qualcosa di simile

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

Nelle proprietà DataGridView, Set

  • multipla -> True
  • SelectionMode -> FullRowSelect

Problemi correlati