Auf Englisch lesen

Freigeben über


DataGridView.Rows Eigenschaft

Definition

Ruft eine Auflistung ab, die alle Zeilen im DataGridView-Steuerelement enthält.

[System.ComponentModel.Browsable(false)]
public System.Windows.Forms.DataGridViewRowCollection Rows { get; }

Eigenschaftswert

Eine DataGridViewRowCollection, die alle Zeilen in der DataGridView enthält.

Attribute

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie Sie eine ungebundene DataGridViewEigenschaft erstellen, die ColumnHeadersVisibleEigenschaften festlegenColumnHeadersDefaultCellStyle, und ColumnCount die Eigenschaften und Columns verwendenRows. Außerdem wird veranschaulicht, wie Sie eine Version der AutoResizeColumnHeadersHeight Methoden und AutoResizeRows verwenden, um die Spaltenheader und die Zeilen ordnungsgemäß zu dimensionieren. Fügen Sie zum Ausführen dieses Beispiels den folgenden Code in ein Formular ein, das einen DataGridView benannten dataGridView1 und eine Schaltfläche mit dem Namen Button1enthält, und rufen Sie dann die InitializeDataGridView Methode aus dem Konstruktor oder Load Ereignishandler des Formulars auf. Stellen Sie sicher, dass alle Ereignisse mit ihren Ereignishandlern verbunden sind.

private void InitializeDataGridView()
{
    // Create an unbound DataGridView by declaring a column count.
    dataGridView1.ColumnCount = 4;
    dataGridView1.ColumnHeadersVisible = true;

    // Set the column header style.
    DataGridViewCellStyle columnHeaderStyle = new DataGridViewCellStyle();

    columnHeaderStyle.BackColor = Color.Beige;
    columnHeaderStyle.Font = new Font("Verdana", 10, FontStyle.Bold);
    dataGridView1.ColumnHeadersDefaultCellStyle = columnHeaderStyle;

    // Set the column header names.
    dataGridView1.Columns[0].Name = "Recipe";
    dataGridView1.Columns[1].Name = "Category";
    dataGridView1.Columns[2].Name = "Main Ingredients";
    dataGridView1.Columns[3].Name = "Rating";

    // Populate the rows.
    string[] row1 = new string[] { "Meatloaf", "Main Dish", "ground beef",
        "**" };
    string[] row2 = new string[] { "Key Lime Pie", "Dessert", 
        "lime juice, evaporated milk", "****" };
    string[] row3 = new string[] { "Orange-Salsa Pork Chops", "Main Dish", 
        "pork chops, salsa, orange juice", "****" };
    string[] row4 = new string[] { "Black Bean and Rice Salad", "Salad", 
        "black beans, brown rice", "****" };
    string[] row5 = new string[] { "Chocolate Cheesecake", "Dessert", 
        "cream cheese", "***" };
    string[] row6 = new string[] { "Black Bean Dip", "Appetizer", 
        "black beans, sour cream", "***" };
    object[] rows = new object[] { row1, row2, row3, row4, row5, row6 };

    foreach (string[] rowArray in rows)
    {
        dataGridView1.Rows.Add(rowArray);
    }
}

private void button1_Click(object sender, System.EventArgs e)
{
    // Resize the height of the column headers. 
    dataGridView1.AutoResizeColumnHeadersHeight();

    // Resize all the row heights to fit the contents of all non-header cells.
    dataGridView1.AutoResizeRows(
        DataGridViewAutoSizeRowsMode.AllCellsExceptHeaders);
}

private void InitializeContextMenu()
{
    // Create the menu item.
    ToolStripMenuItem getRecipe = new ToolStripMenuItem("Search for recipe", null,
        new System.EventHandler(ShortcutMenuClick));

    // Add the menu item to the shortcut menu.
    ContextMenuStrip recipeMenu = new ContextMenuStrip();
    recipeMenu.Items.Add(getRecipe); 

    // Set the shortcut menu for the first column.
    dataGridView1.Columns[0].ContextMenuStrip = recipeMenu;
    dataGridView1.MouseDown += new MouseEventHandler(dataGridView1_MouseDown);
}

private DataGridViewCell clickedCell;

private void dataGridView1_MouseDown(object sender, MouseEventArgs e)
{
// If the user right-clicks a cell, store it for use by the shortcut menu.
    if (e.Button == MouseButtons.Right)
    {
        DataGridView.HitTestInfo hit = dataGridView1.HitTest(e.X, e.Y);
        if (hit.Type == DataGridViewHitTestType.Cell)
        {
            clickedCell =
                dataGridView1.Rows[hit.RowIndex].Cells[hit.ColumnIndex];
        }
    }
}

private void ShortcutMenuClick(object sender, System.EventArgs e)
{
    if (clickedCell != null)
    {
        //Retrieve the recipe name.
        string recipeName = (string)clickedCell.Value;

        //Search for the recipe.
        System.Diagnostics.Process.Start(
            "http://search.msn.com/results.aspx?q=" + recipeName);
            //null);
    }
}

Hinweise

Sie können die Rows Auflistung verwenden, um ein DataGridView Steuerelement manuell aufzufüllen, anstatt es an eine Datenquelle zu binden. Das folgende Beispiel zeigt, wie Sie Zeilen manuell hinzufügen und einfügen. In diesem Beispiel wird davon ausgegangen, dass Sie der Auflistung des Steuerelements Columns vier DataGridViewTextBoxColumn Instanzen hinzugefügt haben.

this.dataGridView1.Rows.Add("five", "six", "seven", "eight");this.dataGridView1.Rows.Insert(0, "one", "two", "three", "four");

Ein ausführliches Beispiel zum programmgesteuerten Auffüllen eines ungebundenen DataGridView Steuerelements finden Sie im Abschnitt Beispiel.

Zeilen enthalten neben Zellenwerten Auch Formatinformationen. Aus diesem Grund können Sie Zeilen basierend auf vorhandenen Zeilen hinzufügen oder einfügen, die Sie bereits formatiert haben. Dazu können Sie die AddCopyMethoden , AddCopies, InsertCopyund InsertCopies verwenden.

Sie können die Rows Auflistung auch verwenden, um die Werte im Steuerelement zu ändern oder Zeilen zu entfernen. Sie können Werte ändern oder Zeilen entfernen, unabhängig davon, ob das Steuerelement an eine externe Datenquelle gebunden ist. Wenn eine Datenquelle vorhanden ist, werden die Änderungen direkt an der Datenquelle vorgenommen. Möglicherweise müssen Sie die Datenquellenupdates jedoch trotzdem per Push in eine Remotedatenbank übertragen. Weitere Informationen finden Sie unter Vorgehensweise: Binden von Daten an das DataGridView-Steuerelement in Windows Forms.

Das folgende Beispiel zeigt, wie Sie Zellwerte programmgesteuert ändern.

// Modify the value in the first cell of the second row.
this.dataGridView1.Rows[1].Cells[0].Value = "new value";

// The previous line is equivalent to the following line.
this.dataGridView1[0, 1].Value = "new value";

Zusätzlich zu den Standardsammlungsfunktionen können Sie die Rows Sammlung verwenden, um Informationen zu Zeilen abzurufen. Verwenden Sie die GetRowState -Methode, um den Zustand einer bestimmten Zeile zu bestimmen. Verwenden Sie die GetRowCount Methoden und GetRowsHeight , um die Anzahl von Zeilen oder die kombinierte Höhe von Zeilen in einem bestimmten Zustand zu bestimmen. Um den Index einer Zeile mit einem bestimmten Zustand abzurufen, verwenden Sie die GetFirstRowMethoden , GetLastRow, GetNextRowund GetPreviousRow .

Im folgenden Beispiel wird gezeigt, wie Sie den Index der ersten ausgewählten Zeile abrufen und dann verwenden, um die Zeile programmgesteuert zu löschen.

Int32 rowToDelete = this.dataGridView1.Rows.GetFirstRow(
    DataGridViewElementStates.Selected);
if (rowToDelete > -1)
{
    this.dataGridView1.Rows.RemoveAt(rowToDelete);
}

Um die Leistung zu verbessern, kann die DataGridViewRowCollection von der Rows -Eigenschaft zurückgegebene Zeilen freigegebene und nicht freigegebene Zeilen enthalten. Freigegebene Zeilen teilen sich Arbeitsspeicher, um die Kosten für einen großen Datensatzsatz zu reduzieren. Wenn Ihr Datensatzsatz sehr groß ist, sollten Sie beim Zugriff auf die Rows Eigenschaft darauf achten, dass die Zeilen so weit wie möglich freigegeben werden.

Weitere Informationen finden Sie unter Empfohlene Vorgehensweisen für das Skalieren des DataGridView-Steuerelements in Windows Forms.

Gilt für:

Produkt Versionen
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9, 10

Weitere Informationen