Freigeben über


Auswahlmodi im DataGridView-Steuerelement von Windows Forms

Manchmal möchten Sie, dass Ihre Anwendung Aktionen basierend auf Benutzerauswahlen innerhalb eines DataGridView-Steuerelements ausführt. Je nach den Aktionen möchten Sie möglicherweise die möglichen Auswahlarten einschränken. Angenommen, Ihre Anwendung kann einen Bericht für den aktuell ausgewählten Datensatz drucken. In diesem Fall könnten Sie das DataGridView-Steuerelement so konfigurieren, dass durch Klicken auf eine beliebige Stelle in einer Zeile immer die gesamte Zeile ausgewählt wird und gleichzeitig nur eine Zeile ausgewählt werden kann.

Sie können die zulässigen Auswahlmöglichkeiten angeben, indem Sie die DataGridView.SelectionMode-Eigenschaft auf einen der folgenden DataGridViewSelectionMode-Enumerationswerte festlegen.

DataGridViewSelectionMode-Wert BESCHREIBUNG
CellSelect Die Zellauswahl erfolgt durch Klicken auf eine Zelle. Zeilen- und Spaltenüberschriften können nicht für die Auswahl verwendet werden.
ColumnHeaderSelect Die Zellauswahl erfolgt durch Klicken auf eine Zelle. Durch Klicken auf einen Spaltenheader wird die gesamte Spalte ausgewählt. Spaltenüberschriften können nicht zum Sortieren verwendet werden.
FullColumnSelect Durch Klicken auf eine Zelle oder einen Spaltenheader wird die gesamte Spalte ausgewählt. Spaltenüberschriften können nicht zum Sortieren verwendet werden.
FullRowSelect Durch Klicken auf eine Zelle oder einen Zeilenheader wird die gesamte Zeile ausgewählt.
RowHeaderSelect Standardauswahlmodus. Die Zellauswahl erfolgt durch Klicken auf eine Zelle. Durch Klicken auf einen Zeilenheader wird die gesamte Zeile ausgewählt.

Hinweis

Wenn Sie den Auswahlmodus zur Laufzeit ändern, wird automatisch die aktuelle Auswahl gelöscht.

Standardmäßig können Benutzende mehrere Zeilen, Spalten oder Zellen auswählen, indem sie mit der Maus ziehen, indem sie die STRG- oder UMSCHALTTASTE gedrückt halten, während sie eine Auswahl erweitern oder ändern, oder indem sie auf die linke obere Headerzelle klicken, um alle Zellen im Steuerelement auszuwählen. Um dieses Verhalten zu verhindern, legen Sie die MultiSelect-Eigenschaft auf falsefest.

In den Modi FullRowSelect und RowHeaderSelect können Benutzende Zeilen löschen, indem Sie sie auswählen und die ENTF-TASTE drücken. Benutzer können Zeilen nur löschen, wenn sich die aktuelle Zelle nicht im Bearbeitungsmodus befindet, die AllowUserToDeleteRows-Eigenschaft auf truefestgelegt ist, und die zugrunde liegende Datenquelle unterstützt das löschen von benutzergesteuerten Zeilen. Beachten Sie, dass diese Einstellungen nicht das programmgesteuerte Löschen von Zeilen verhindern.

Programmgesteuerte Auswahl

Der aktuelle Auswahlmodus schränkt das Verhalten der programmgesteuerten Auswahl sowie die Benutzerauswahl ein. Sie können die aktuelle Auswahl programmgesteuert ändern, indem Sie die Eigenschaft Selected beliebiger Zellen, Zeilen oder Spalten festlegen, die im Steuerelement DataGridView vorhanden sind. Sie können je nach Auswahlmodus auch alle Zellen im Steuerelement über die SelectAll-Methode auswählen. Um die Auswahl zu löschen, verwenden Sie die ClearSelection-Methode.

Wenn die MultiSelect-Eigenschaft auf truefestgelegt ist, können Sie DataGridView Elemente hinzufügen oder aus der Auswahl entfernen, indem Sie die eigenschaft Selected des Elements ändern. Andernfalls werden durch Festlegen der Selected-Eigenschaft auf true für ein Element automatisch andere Elemente aus der Auswahl entfernt.

Beachten Sie, dass das Ändern des Werts der CurrentCell-Eigenschaft die aktuelle Auswahl nicht ändert.

Sie können eine Sammlung der aktuell ausgewählten Zellen, Zeilen oder Spalten über die Eigenschaften SelectedCells, SelectedRows und SelectedColumns des DataGridView-Steuerelements abrufen. Der Zugriff auf diese Eigenschaften ist ineffizient, wenn jede Zelle im Steuerelement ausgewählt ist. Um in diesem Fall eine Leistungsstrafe zu vermeiden, verwenden Sie zuerst die AreAllCellsSelected-Methode. Darüber hinaus kann das Zugreifen auf diese Sammlungen, um die Anzahl der ausgewählten Zellen, Zeilen oder Spalten zu bestimmen, ineffizient werden. Sie sollten stattdessen die Methoden GetCellCount, GetRowCount oder GetColumnCount verwenden und dabei den Selected-Wert übergeben.

Tipp

Beispielcode, der die programmgesteuerte Verwendung ausgewählter Zellen veranschaulicht, finden Sie in der DataGridView Klassenübersicht.

Siehe auch