it-swarm.com.de

Wie wähle ich eine komplette DataGridView-Zeile aus?

Ich habe ein dataGridView und ich brauche das, wenn der Benutzer auf eine beliebige Zelle klickt, wird auch die gesamte Zeile ausgewählt, die diese Zelle enthält. (es hat Multiselect deaktiviert) Ich habe versucht, das currentRowIndex so zu erhalten

 int Index = dataGridView1.CurrentCell.RowIndex;

Ich bin mir jedoch nicht sicher, wie ich den Index verwenden soll, um diese Zeile auszuwählen Ich habe dies und andere sechs Möglichkeiten ohne Erfolg ausprobiert:

dataGridView1.Select(Index);

Wissen Sie, wie ich das machen kann?

44
Alex Terreaux

Sie müssen SelectionMode von datagridview auf FullRowMode setzen.

Hinweis: In Visual Studio 2013 mit .NET 4.5 heißt die Eigenschaft FullRowSelect, siehe https://msdn.Microsoft.com/en-us/library/3c89df86(v=vs.110).aspx

83
urlreader

Wenn Sie möchten, dass die Zeile programmgesteuert ausgewählt wird, würden Sie das Klickereignis für die Zelle datagridview verwenden: In VB.net und 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;
}
8
Rick H.

In den DataGridView-Eigenschaften Set

  • MultiSelect -> True
  • SelectionMode -> FullRowSelect

2
Champ_01

Könnte so etwas tun

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);
}
1
Tom McDonough

Sie können das tun: Vielleicht kann es Ihnen helfen.

private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
    {
        if (e.RowIndex>0)
        {
            int rowindex = e.RowIndex;
            DataGridViewRow row= this.dataGridView1.Rows[rowindex];
        }
    }
0
//class to store ID (Pri. Key) value of selected row from DataGridView
public class Variables
{
   public static string StudentID;
}                                  

//This is the event call on cell click of the DataGridView
private void dataGridViewDisplay_CellClick(object sender, DataGridViewCellEventArgs e)
{
   Variables.StudentID =this.dataGridViewDisplay.CurrentRow.Cells[0].Value.ToString();
//textBoxName is my form field where I set the value of Name Column from the Selected row from my DataGridView 

   textBoxName.Text = this.dataGridViewDisplay.CurrentRow.Cells[1].Value.ToString();

   dateTimePickerDOB.Value = Convert.ToDateTime(this.dataGridViewDisplay.CurrentRow.Cells[2].Value.ToString());
}

Schauen Sie sich My DataGridView an

0
Parag555