Gewusst wie: Abrufen der ausgewählten Zellen, Zeilen und Spalten im DataGridView-Steuerelement in Windows Forms

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.

    Tipp

    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

DataGridView

SelectionMode

AreAllCellsSelected

SelectedCells

SelectedRows

SelectedColumns

Weitere Ressourcen

Verwendung von Auswahl und Zwischenablage mit dem DataGridView-Steuerelement in Windows Forms