Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. |
Übersetzung
Original
|
DataGridView.Rows-Eigenschaft
Ruft eine Auflistung ab, die alle Zeilen im DataGridView-Steuerelement enthält.
Assembly: System.Windows.Forms (in System.Windows.Forms.dll)
Eigenschaftswert
Typ: System.Windows.Forms.DataGridViewRowCollectionEine DataGridViewRowCollection, die alle Zeilen in der DataGridView enthält.
Sie können die Rows-Auflistung verwenden, um ein DataGridView-Steuerelement manuell aufzufüllen, statt es an eine Datenquelle zu binden. Im folgenden Beispiel wird veranschaulicht, wie Zeilen manuell hinzugefügt und eingefügt werden. In diesem Beispiel wird davon ausgegangen, dass Sie vier DataGridViewTextBoxColumn-Instanzen zur Columns-Auflistung des Steuerelements hinzugefügt haben.
[Visual Basic]
Me.dataGridView1.Rows.Add("five", "six", "seven", "eight")
Me.dataGridView1.Rows.Insert(0, "one", "two", "three", "four")
[C#]
this.dataGridView1.Rows.Add("five", "six", "seven", "eight");this.dataGridView1.Rows.Insert(0, "one", "two", "three", "four");
Ein ausführliches Beispiel, in dem ein ungebundenes DataGridView-Steuerelement programmgesteuert aufgefüllt wird, finden Sie im Beispielabschnitt.
Zeilen enthalten neben Zellenwerten Stilinformationen. Aus diesem Grund empfiehlt es sich möglicherweise, Zeilen auf der Grundlage von bereits mit Stilinformationen versehenen Zeilen hinzuzufügen bzw. einzufügen. Dies kann mithilfe der Methoden AddCopy, AddCopies, InsertCopy und InsertCopies erfolgen.
Sie können die Rows-Auflistung auch verwenden, um die Werte im Steuerelement zu ändern und Zeilen zu entfernen. Das Ändern der Werte und Entfernen von Zeilen kann unabhängig davon erfolgen, ob das Steuerelement an eine externe Datenquelle gebunden ist. Wenn eine Datenquelle vorhanden ist, werden die Änderungen direkt an der Datenquelle vorgenommen. Möglicherweise ist es jedoch erforderlich, die Aktualisierungen der Datenquelle anschließend an eine Remotedatenbank zu übertragen. Weitere Informationen finden Sie unter Gewusst wie: Binden von Daten an das DataGridView-Steuerelement in Windows Forms.
Im folgenden Beispiel wird veranschaulicht, wie Zellwerte programmgesteuert geändert werden.
[Visual Basic]
' Modify the value in the first cell of the second row. Me.dataGridView1.Rows[1].Cells[0].Value = "new value" ' The previous line is equivalent to the following line. Me.dataGridView1[0, 1].Value = "new value"
[C#]
// 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";
Die Rows-Auflistung bietet neben den Standardfunktionen von Auflistungen auch die Möglichkeit, um Informationen über die Zeilen anzurufen. Mithilfe der GetRowState-Methode können Sie den Zustand einer bestimmten Zeile ermitteln. Verwenden Sie die GetRowCount-Methode und die GetRowsHeight-Methode, um die Anzahl oder kombinierte Höhe der Zeilen in einem bestimmten Zustand zu ermitteln. Um den Index einer Zeile in einem bestimmten Zustand abzurufen, verwenden Sie die Methoden GetFirstRow, GetLastRow, GetNextRow und GetPreviousRow.
Im folgenden Beispiel wird ermittelt, wie der Index der ersten ausgewählten Zeile abgerufen und diese dann mithilfe des Indexes gelöscht wird.
[Visual Basic]
Dim rowToDelete As Int32 = Me.dataGridView1.Rows.GetFirstRow( _
DataGridViewElementStates.Selected)
If rowToDelete > -1 Then
Me.dataGridView1.Rows.RemoveAt(rowToDelete)
End If
[C#]
Int32 rowToDelete = this.dataGridView1.Rows.GetFirstRow(
DataGridViewElementStates.Selected);
if (rowToDelete > -1)
{
this.dataGridView1.Rows.RemoveAt(rowToDelete);
}
Um die Leistung zu verbessern, kann die von der Rows-Eigenschaft zurückgegebene DataGridViewRowCollection freigegebene und nicht freigegebene Zellen umfassen. Von freigegebenen Zeilen wird der Speicher gemeinsam genutzt, sodass für eine große Menge von Datensätzen die Kosten verringert werden. Bei einer sehr großen Anzahl von Datensätzen sollten Sie darauf achten, dass beim Zugriff auf die Rows-Eigenschaft möglichst viele Zeilen freigegeben bleiben.
Weitere Informationen finden Sie unter Empfohlene Vorgehensweisen für das Skalieren des DataGridView-Steuerelements in Windows Forms.
Im folgenden Codebeispiel wird veranschaulicht, wie eine ungebundene DataGridView erstellt wird. Legen Sie Eigenschaften ColumnHeadersVisible, ColumnHeadersDefaultCellStyle und ColumnCount fest, und verwenden Sie die Rows-Eigenschaft und die Columns-Eigenschaft. Außerdem wird veranschaulicht, wie eine Version der AutoResizeColumnHeadersHeight-Methode und der AutoResizeRows-Methode verwendet wird, um die Größe der Spaltenheader und Zeilen korrekt anzupassen. Zum Ausführen dieses Beispiels fügen Sie folgenden Code in ein Formular ein, das die DataGridViewdataGridView1 und die Schaltfläche Button1 enthält, und rufen Sie die InitializeDataGridView-Methode im Konstruktor oder im Load-Ereignishandler des Formulars auf. Stellen Sie sicher, dass allen Ereignissen mit den entsprechenden 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);
}
}
Windows 7, Windows Vista SP1 oder höher, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core wird nicht unterstützt), Windows Server 2008 R2 (Server Core wird mit SP1 oder höher unterstützt), Windows Server 2003 SP2
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.