Gewusst wie: Abrufen der ausgewählten Zellen, Zeilen und Spalten im DataGridView-Steuerelement in Windows Forms
Aktualisiert: November 2007
Sie können die ausgewählten Zellen, Zeilen oder Spalten aus einem DataGridView-Steuerelement abrufen, indem Sie die entsprechende Eigenschaft verwenden, nämlich SelectedCells, SelectedRows und SelectedColumns. In den folgenden Prozeduren rufen Sie die ausgewählten Zellen ab und zeigen ihren Zeilen- und Spaltenindex in einer MessageBox an.
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 möglicherweise große Anzahl von Zellen angezeigt wird.
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
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"); } } }
So rufen Sie die ausgewählten Zeilen in einem DataGridView-Steuerelement ab
Verwenden Sie die SelectedRows-Eigenschaft. Damit Benutzer Zeilen auswählen können, müssen Sie die SelectionMode-Eigenschaft auf FullRowSelect oder RowHeaderSelect festlegen.
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
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"); } }
So rufen Sie die ausgewählten Spalten in einem DataGridView-Steuerelement ab
Verwenden Sie die SelectedColumns-Eigenschaft. Damit Benutzer Spalten auswählen können, müssen Sie die SelectionMode-Eigenschaft auf FullColumnSelect oder ColumnHeaderSelect festlegen.
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
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"); } }
Kompilieren des Codes
Dieses Beispiel setzt Folgendes voraus:
Button-Steuerelemente mit dem Namen selectedCellsButton, selectedRowsButton und selectedColumnsButton, an die Handler für das Click-Ereignis angefügt sind.
Ein DataGridView-Steuerelement mit dem NamendataGridView1 muss vorhanden sein.
Verweise auf die Assemblys System, System.Windows.Forms und System.Text.
Robuste Programmierung
Die in diesem Thema beschriebenen Auflistungen können nicht effektiv verwendet werden, wenn viele Zellen, Zeilen oder Spalten ausgewählt sind. Weitere Informationen über die Verwendung dieser Auflistungen mit großen Datenmengen finden Sie unter Empfohlene Vorgehensweisen für das Skalieren des DataGridView-Steuerelements in Windows Forms.
Siehe auch
Referenz
Weitere Ressourcen
Verwendung von Auswahl und Zwischenablage mit dem DataGridView-Steuerelement in Windows Forms