Auswahlmodi im DataGridView-Steuerelement von Windows Forms
Zeitweise ist es erforderlich, dass eine Anwendung auf Benutzerauswahlen basierende Aktionen innerhalb eines DataGridView-Steuerelements ausführt. Abhängig von den Aktionen möchten Sie die möglichen Auswahlen vielleicht beschränken. Angenommen, die Anwendung kann einen Bericht für den aktuell ausgewählten Datensatz ausgeben. In diesem Fall können Sie das DataGridView-Steuerelement so konfigurieren, dass beim Klicken in eine Zeile immer die gesamte Zeile ausgewählt wird. Folglich kann immer nur diese eine Zeile ausgewählt werden.
Sie können die zulässigen Auswahlen angeben, indem Sie die DataGridView.SelectionMode-Eigenschaft auf einen der folgenden DataGridViewSelectionMode-Enumerationswerte festlegen.
DataGridViewSelectionMode-Wert |
Beschreibung |
---|---|
Durch Klicken auf eine Zelle wird diese ausgewählt. Zeilen- und Spaltenheader können nicht zum Auswählen verwendet werden. |
|
Durch Klicken auf eine Zelle wird diese ausgewählt. Durch Klicken auf einen Spaltenheader wird die gesamte Spalte ausgewählt. Spaltenheader können nicht zum Sortieren verwendet werden. |
|
Durch Klicken auf eine Zelle oder einen Spaltenheader wird die gesamte Spalte ausgewählt. Spaltenheader können nicht zum Sortieren verwendet werden. |
|
Durch Klicken auf eine Zelle oder einen Zeilenheader wird die gesamte Zeile ausgewählt. |
|
Standardauswahlmodus. Durch Klicken auf eine Zelle wird diese ausgewählt. Durch Klicken auf einen Zeilenheader wird die gesamte Zeile ausgewählt. |
Tipp
Durch Änderung des Auswahlmodus zur Laufzeit wird die aktuelle Auswahl automatisch aufgehoben.
Benutzer können standardmäßig mehrere Zeilen, Spalten oder Zellen auswählen, indem sie den Mauszeiger ziehen und während der Auswahl die STRG- oder UMSCHALTTASTE gedrückt halten, um die Auswahl zu erweitern bzw. zu ändern. Alternativ können sie auf die obere linke Headerzelle klicken, um sämtliche Zellen im Steuerelement auszuwählen. Legen Sie die MultiSelect-Eigenschaft auf den Wert false fest, um dieses Verhalten zu vermeiden.
Im FullRowSelect-Modus und im RowHeaderSelect-Modus können Benutzer Zeilen löschen, indem Sie sie auswählen und die ENTF-TASTE drücken. Benutzer können Zeilen nur dann löschen, wenn sich die aktuelle Zelle nicht im Bearbeitungsmodus befindet, die AllowUserToDeleteRows-Eigenschaft auf true festgelegt ist und die zugrunde liegende Datenquelle das Löschen von Zeilen durch Benutzer unterstützt. Beachten Sie, dass das programmgesteuerte Löschen von Zeilen durch diese Einstellungen nicht verhindert wird.
Programmgesteuerte Auswahl
Der aktuelle Auswahlmodus beschränkt das Verhalten bei der programmgesteuerten Auswahl sowie bei der Benutzerauswahl. Sie können die aktuelle Auswahl programmgesteuert ändern, indem Sie die Selected-Eigenschaft beliebiger Zellen, Zeilen oder Spalten im DataGridView-Steuerelement festlegen. Außerdem können Sie abhängig vom Auswahlmodus alle im Steuerelement enthaltenen Zellen mithilfe der SelectAll-Methode auswählen. Um die Auswahl aufzuheben, verwenden Sie die ClearSelection-Methode.
Wenn die MultiSelect-Eigenschaft auf true festgelegt ist, können Sie der Auswahl DataGridView-Elemente hinzufügen oder diese daraus entfernen, indem Sie die Selected-Eigenschaft des Elements ändern. Wenn Sie die Selected-Eigenschaft für ein Element in einem anderen Fall auf true festlegen, werden andere Elemente automatisch aus der Auswahl entfernt.
Beachten Sie, dass die aktuelle Auswahl durch eine Änderung des Werts der CurrentCell-Eigenschaft nicht geändert wird.
Eine Auflistung der momentan ausgewählten Zellen, Zeilen oder Spalten können Sie ü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 Leistungseinbußen zu vermeiden, verwenden Sie zuerst die AreAllCellsSelected-Methode. Außerdem kann sich der Zugriff auf diese Auflistungen als ineffizient erweisen, wenn die Anzahl der ausgewählten Zellen, Zeilen oder Spalten ermittelt werden soll. Sie sollten stattdessen die Methode GetCellCount, GetRowCount oder GetColumnCount verwenden und den Selected-Wert übergeben.
Tipp
Beispielcode zur Veranschaulichung der programmgesteuerten Verwendung ausgewählter Zellen finden Sie in der Übersicht über die DataGridView-Klasse.
Siehe auch
Aufgaben
Gewusst wie: Festlegen des Auswahlmodus des DataGridView-Steuerelements in Windows Forms
Referenz
Weitere Ressourcen
Verwendung von Auswahl und Zwischenablage mit dem DataGridView-Steuerelement in Windows Forms