Vorgehensweise: Abrufen der ausgewählten Zellen, Zeilen und Spalten im DataGridView-Steuerelement in Windows Forms
Sie können die ausgewählten Zellen, Zeilen oder Spalten von einem DataGridView-Steuerelement abrufen, indem Sie die entsprechenden Eigenschaften verwenden: SelectedCells, SelectedRows und SelectedColumns. In den folgenden Prozeduren werden Sie die ausgewählten Zellen abrufen und ihre Zeilen- und Spaltenindizes in einem MessageBox-Steuerelement anzeigen.
So rufen Sie die ausgewählten Zellen in einem DataGridView-Steuerelement ab
Verwenden Sie die SelectedCells-Eigenschaft.
Hinweis
Verwenden Sie die AreAllCellsSelected-Methode, um zu vermeiden, dass eine potenziell große Anzahl von Zellen angezeigt wird.
private void selectedCellsButton_Click(object sender, System.EventArgs e) { Int32 selectedCellCount = dataGridView1.GetCellCount(DataGridViewElementStates.Selected); if (selectedCellCount > 0) { if (dataGridView1.AreAllCellsSelected(true)) { MessageBox.Show("All cells are selected", "Selected Cells"); } else { System.Text.StringBuilder sb = new System.Text.StringBuilder(); for (int i = 0; i < selectedCellCount; i++) { sb.Append("Row: "); sb.Append(dataGridView1.SelectedCells[i].RowIndex .ToString()); sb.Append(", Column: "); sb.Append(dataGridView1.SelectedCells[i].ColumnIndex .ToString()); sb.Append(Environment.NewLine); } sb.Append("Total: " + selectedCellCount.ToString()); MessageBox.Show(sb.ToString(), "Selected Cells"); } } }
Private Sub selectedCellsButton_Click( _ ByVal sender As Object, ByVal e As System.EventArgs) _ Handles selectedCellsButton.Click Dim selectedCellCount As Integer = _ dataGridView1.GetCellCount(DataGridViewElementStates.Selected) If selectedCellCount > 0 Then If dataGridView1.AreAllCellsSelected(True) Then MessageBox.Show("All cells are selected", "Selected Cells") Else Dim sb As New System.Text.StringBuilder() Dim i As Integer For i = 0 To selectedCellCount - 1 sb.Append("Row: ") sb.Append(dataGridView1.SelectedCells(i).RowIndex _ .ToString()) sb.Append(", Column: ") sb.Append(dataGridView1.SelectedCells(i).ColumnIndex _ .ToString()) sb.Append(Environment.NewLine) Next i sb.Append("Total: " + selectedCellCount.ToString()) MessageBox.Show(sb.ToString(), "Selected Cells") End If End If End Sub
So rufen Sie die ausgewählten Zeilen in einem DataGridView-Steuerelement ab
Verwenden Sie die SelectedRows-Eigenschaft. Damit die Benutzer Zeilen auswählen können, müssen Sie die SelectionMode-Eigenschaft auf FullRowSelect oder RowHeaderSelect festlegen.
private void selectedRowsButton_Click(object sender, System.EventArgs e) { Int32 selectedRowCount = dataGridView1.Rows.GetRowCount(DataGridViewElementStates.Selected); if (selectedRowCount > 0) { System.Text.StringBuilder sb = new System.Text.StringBuilder(); for (int i = 0; i < selectedRowCount; i++) { sb.Append("Row: "); sb.Append(dataGridView1.SelectedRows[i].Index.ToString()); sb.Append(Environment.NewLine); } sb.Append("Total: " + selectedRowCount.ToString()); MessageBox.Show(sb.ToString(), "Selected Rows"); } }
Private Sub selectedRowsButton_Click( _ ByVal sender As Object, ByVal e As System.EventArgs) _ Handles selectedRowsButton.Click Dim selectedRowCount As Integer = _ dataGridView1.Rows.GetRowCount(DataGridViewElementStates.Selected) If selectedRowCount > 0 Then Dim sb As New System.Text.StringBuilder() Dim i As Integer For i = 0 To selectedRowCount - 1 sb.Append("Row: ") sb.Append(dataGridView1.SelectedRows(i).Index.ToString()) sb.Append(Environment.NewLine) Next i sb.Append("Total: " + selectedRowCount.ToString()) MessageBox.Show(sb.ToString(), "Selected Rows") End If End Sub
So rufen Sie die ausgewählten Spalten in einem DataGridView-Steuerelement ab
Verwenden Sie die SelectedColumns-Eigenschaft. Damit die Benutzer Spalten auswählen können, müssen Sie die SelectionMode-Eigenschaft auf FullColumnSelect oder ColumnHeaderSelect festlegen.
private void selectedColumnsButton_Click(object sender, System.EventArgs e) { Int32 selectedColumnCount = dataGridView1.Columns .GetColumnCount(DataGridViewElementStates.Selected); if (selectedColumnCount > 0) { System.Text.StringBuilder sb = new System.Text.StringBuilder(); for (int i = 0; i < selectedColumnCount; i++) { sb.Append("Column: "); sb.Append(dataGridView1.SelectedColumns[i].Index .ToString()); sb.Append(Environment.NewLine); } sb.Append("Total: " + selectedColumnCount.ToString()); MessageBox.Show(sb.ToString(), "Selected Columns"); } }
Private Sub selectedColumnsButton_Click( _ ByVal sender As Object, ByVal e As System.EventArgs) _ Handles selectedColumnsButton.Click Dim selectedColumnCount As Integer = dataGridView1.Columns _ .GetColumnCount(DataGridViewElementStates.Selected) If selectedColumnCount > 0 Then Dim sb As New System.Text.StringBuilder() Dim i As Integer For i = 0 To selectedColumnCount - 1 sb.Append("Column: ") sb.Append(dataGridView1.SelectedColumns(i).Index.ToString()) sb.Append(Environment.NewLine) Next i sb.Append("Total: " + selectedColumnCount.ToString()) MessageBox.Show(sb.ToString(), "Selected Columns") End If End Sub
Kompilieren des Codes
Für dieses Beispiel benötigen Sie Folgendes:
Button-Steuerelemente mit den Namen
selectedCellsButton
,selectedRowsButton
undselectedColumnsButton
, jeweils mit angefügten Handlern für das Ereignis Click.Ein DataGridView-Steuerelement namens
dataGridView1
.Verweise auf die Assemblys System, System.Windows.Forms und System.Text.
Stabile Programmierung
Die in diesem Thema beschriebenen Sammlungen arbeiten nicht effizient, wenn eine große Anzahl von Zellen, Zeilen oder Spalten ausgewählt wird. Weitere Informationen zur Verwendung dieser Sammlungen mit großen Datenmengen finden Sie unter Empfohlene Vorgehensweisen für das Skalieren des DataGridView-Steuerelements in Windows Forms.
Weitere Informationen
.NET Desktop feedback
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für