Freigeben über


Standardmäßiges Tastatur- und Mausverhalten mit dem DataGridView-Steuerelement

In den folgenden Tabellen wird beschrieben, wie Benutzer über eine Tastatur und Maus mit dem DataGridView Steuerelement interagieren können.

Hinweis

Um das Tastaturverhalten anzupassen, können Sie Standard-Tastaturereignisse wie zum Beispiel KeyDown behandeln. Im Bearbeitungsmodus empfängt das gehostete Bearbeitungssteuerelement jedoch die Tastatureingabe, und die Tastaturereignisse treten für das DataGridView Steuerelement nicht auf. Um Bearbeitungsereignisse zu steuern, hängen Sie Ihre Handler an das Bearbeitungssteuerelement in einem EditingControlShowing-Ereignishandler. Alternativ können Sie das Tastaturverhalten in einer DataGridView Unterklasse anpassen, indem Sie die Methoden ProcessDialogKey und ProcessDataGridViewKey überschreiben.

Standardtastaturenbehandlung

Grundlegende Navigations- und Eingabetasten

Tastenkombination oder Tastenkombination BESCHREIBUNG
NACH-UNTEN-TASTE Verschiebt den Fokus auf die Zelle unter der aktuellen Zelle. Wenn sich der Fokus in der letzten Zeile befindet, passiert nichts.
NACH-LINKS-TASTE Verschiebt den Fokus auf die vorherige Zelle in der Zeile. Wenn sich der Fokus in der ersten Zelle in der Zeile befindet, wird nichts unternommen.
NACH-RECHTS-TASTE Verschiebt den Fokus auf die nächste Zelle in der Zeile. Wenn sich der Fokus in der letzten Zelle in der Zeile befindet, wird nichts ausgeführt.
NACH-OBEN-TASTE Verschiebt den Fokus auf die Zelle direkt oberhalb der aktuellen Zelle. Wenn sich der Fokus in der ersten Zeile befindet, geschieht nichts.
Startseite Verschiebt den Fokus auf die erste Zelle in der aktuellen Zeile.
Ende Verschiebt den Fokus auf die letzte Zelle in der aktuellen Zeile.
Seite nach unten Scrollt das Steuerelement um die Anzahl der Zeilen, die vollständig sichtbar sind. Verschiebt den Fokus auf die letzte vollständig angezeigte Zeile, ohne Spalten zu ändern.
Seite nach oben Scrollt das Steuerelement nach oben um die Anzahl der Zeilen, die vollständig angezeigt werden. Verschiebt den Fokus auf die erste angezeigte Zeile, ohne Spalten zu ändern.
Registerkarte Wenn der StandardTab Eigenschaftswert lautet false, verschiebt den Fokus auf die nächste Zelle in der aktuellen Zeile. Wenn sich der Fokus bereits in der letzten Zelle der Zeile befindet, wird der Fokus auf die erste Zelle in der nächsten Zeile verschoben. Wenn sich der Fokus in der letzten Zelle des Steuerelements befindet, wird der Fokus auf das nächste Steuerelement in der Tab-Reihenfolge des übergeordneten Containers verschoben.

Wenn der StandardTab Eigenschaftswert true ist, wird der Fokus auf das nächste Steuerelement in der Tabulatorreihenfolge des übergeordneten Containers verschoben.
UMSCHALTTASTE + TAB-TASTE Wenn der StandardTab Eigenschaftswert lautet false, verschiebt den Fokus auf die vorherige Zelle in der aktuellen Zeile. Wenn sich der Fokus bereits in der ersten Zelle der Zeile befindet, wird der Fokus auf die letzte Zelle in der vorherigen Zeile verschoben. Wenn sich der Fokus in der ersten Zelle des Steuerelements befindet, wird der Fokus auf das vorherige Steuerelement in der Tabulatorreihenfolge des übergeordneten Containers verschoben.

Wenn der StandardTab-Eigenschaftswert true ist, dann verschiebt sich der Fokus auf das vorherige Steuerelement in der Aktivierreihenfolge des übergeordneten Containers.
STRG + TAB Wenn der StandardTab Eigenschaftswert false ist, wird der Fokus auf das nächste Steuerelement in der Tabulatorreihenfolge des übergeordneten Containers verschoben.

Wenn der StandardTab Eigenschaftswert lautet true, verschiebt den Fokus auf die nächste Zelle in der aktuellen Zeile. Wenn sich der Fokus bereits in der letzten Zelle der Zeile befindet, wird der Fokus auf die erste Zelle in der nächsten Zeile verschoben. Wenn sich der Fokus in der letzten Zelle des Steuerelements befindet, wird der Fokus auf das nächste Steuerelement in der Tab-Reihenfolge des übergeordneten Containers verschoben.
Strg + Shift + Tab Wenn der StandardTab-Eigenschaftswert false ist, dann verschiebt sich der Fokus auf das vorherige Steuerelement in der Aktivierreihenfolge des übergeordneten Containers.

Wenn der StandardTab Eigenschaftswert lautet true, verschiebt den Fokus auf die vorherige Zelle in der aktuellen Zeile. Wenn sich der Fokus bereits in der ersten Zelle der Zeile befindet, wird der Fokus auf die letzte Zelle in der vorherigen Zeile verschoben. Wenn sich der Fokus in der ersten Zelle des Steuerelements befindet, wird der Fokus auf das vorherige Steuerelement in der Tabulatorreihenfolge des übergeordneten Containers verschoben.
Strg + Pfeil Verschiebt den Fokus auf die weiteste Zelle in Richtung des Pfeils.
Strg + Pos1 Verschiebt den Fokus auf die erste Zelle im Steuerelement.
Strg + Ende Verschiebt den Fokus auf die letzte Zelle im Steuerelement.
Strg + Bild ab/auf Identisch mit "Bild-ab" oder "Bild hoch".
F2 Versetzt die aktuelle Zelle in den Bearbeitungsmodus, wenn der Eigenschaftswert EditMode, EditOnF2 oder EditOnKeystrokeOrF2 ist.
F3 Sortiert die aktuelle Spalte, wenn der DataGridViewColumn.SortMode Eigenschaftswert lautet Automatic. Es ist identisch mit dem Klicken auf die aktuelle Spaltenüberschrift. Verfügbar seit .NET Framework 4.7.2. Um dieses Feature zu aktivieren, müssen Anwendungen auf .NET Framework 4.7.2 oder höher abzielen oder explizit Verbesserungen der Barrierefreiheit mithilfe von AppContext-Schaltern vornehmen.
F4 Wenn es sich bei der aktuellen Zelle um eine DataGridViewComboBoxCellZelle handelt, wird die Zelle in den Bearbeitungsmodus versetzt und die Dropdownliste angezeigt.
ALT + NACH-OBEN/NACH-UNTEN Pfeil Wenn es sich bei der aktuellen Zelle um eine DataGridViewComboBoxCellZelle handelt, wird die Zelle in den Bearbeitungsmodus versetzt und die Dropdownliste angezeigt.
ALT + Linkspfeil/Rechtspfeil Vergrößert oder verkleinert die Breite der Spalte der aktuellen Zelle.
LeerZchn Wenn die aktuelle Zelle ein DataGridViewButtonCell, DataGridViewLinkCell oder DataGridViewCheckBoxCell ist, werden die CellClick- und CellContentClick-Ereignisse ausgelöst. Wenn die aktuelle Zelle eine DataGridViewButtonCell ist, wird auch die Schaltfläche gedrückt. Wenn es sich bei der aktuellen Zelle um eine DataGridViewCheckBoxCellZelle handelt, ändert sich auch der Überprüfungszustand.
eingeben Setzt alle Änderungen an der aktuellen Zelle und Zeile fest und verschiebt den Fokus auf die Zelle direkt unterhalb der aktuellen Zelle. Wenn sich der Fokus in der letzten Zeile befindet, werden Änderungen ausgeführt, ohne den Fokus zu verschieben.
ESC Wenn sich das Steuerelement im Bearbeitungsmodus befindet, wird die Bearbeitung abgebrochen. Wenn sich das Steuerelement nicht im Bearbeitungsmodus befindet, werden alle Änderungen an der aktuellen Zeile rückgängig gemacht, wenn das Steuerelement an eine Datenquelle gebunden ist, die den Bearbeitungs- oder virtuellen Modus unterstützt, oder wenn der Commit-Bereich auf Zeilenebene implementiert wurde.
RÜCK Löscht das Zeichen vor der Einfügestelle beim Bearbeiten einer Zelle.
Löschen Löscht das Zeichen nach der Einfügemarke beim Bearbeiten einer Zelle.
STRG + EINGABETASTE Übernimmt Änderungen an der aktuellen Zelle, ohne den Fokus zu verschieben. Führt außerdem alle Änderungen an der aktuellen Zeile durch, wenn das Steuerelement an eine Datenquelle gebunden ist, die den Bearbeitungsmodus oder virtuellen Modus unterstützt oder mit einem Commit-Bereich auf Zeilenebene implementiert wurde.
Strg + 0 Gibt einen DBNull.Value Wert in die aktuelle Zelle ein, wenn die Zelle bearbeitet werden kann. Standardmäßig ist der Anzeigewert eines DBNull Zellwerts der Wert der NullValue Eigenschaft, die für die DataGridViewCellStyle der aktuellen Zelle wirksam ist.

Auswahltasten

Wenn die MultiSelect Eigenschaft auf false festgelegt ist und die SelectionMode Eigenschaft auf CellSelect festgelegt ist, dann ändert das Ändern der aktuellen Zelle mithilfe der Navigationstasten die Auswahl zur neuen Zelle. Die Umschalttaste, Strg und Alt wirken sich nicht auf dieses Verhalten aus.

Wenn die SelectionMode auf RowHeaderSelect oder ColumnHeaderSelect eingestellt ist, tritt dasselbe Verhalten auf, jedoch mit den folgenden Ergänzungen.

Tastenkombination oder Tastenkombination BESCHREIBUNG
Umschalttaste + Leertaste Wählt die vollständige Zeile oder Spalte aus (identisch mit dem Klicken auf die Zeilen- oder Spaltenüberschrift).
Navigationstaste (Pfeiltaste, Bild auf/ab, Start, Ende) Wenn eine vollständige Zeile oder Spalte ausgewählt ist, verschiebt das Ändern der aktuellen Zelle in eine neue Zeile oder Spalte die Markierung in die vollständige neue Zeile oder Spalte (je nach Auswahlmodus).

Wenn MultiSelect auf false und SelectionMode auf FullRowSelect oder FullColumnSelect festgelegt ist, bewirkt das Wechseln der aktuellen Zelle in eine neue Zeile oder Spalte mithilfe der Tastatur, dass die Markierung auf die gesamte neue Zeile oder Spalte verschoben wird. Die Umschalttaste, Strg und Alt wirken sich nicht auf dieses Verhalten aus.

Wenn MultiSelect auf true gesetzt ist, ändert sich das Navigationsverhalten nicht, aber die Navigation mit der Tastatur beim Drücken der Umschalttaste (einschließlich Strg + Umschalt) ändert eine Mehrfachzellenauswahl. Bevor die Navigation beginnt, kennzeichnet das Steuerelement die aktuelle Zelle als Ankerzelle. Wenn Sie während des Drückens der Umschalttaste navigieren, umfasst die Auswahl alle Zellen zwischen der ersten Zelle und der aktuellen Zelle. Andere Zellen im Steuerelement bleiben ausgewählt, wenn sie bereits ausgewählt wurden, aber sie können nicht ausgewählt werden, wenn die Tastaturnavigation sie vorübergehend zwischen der Ankerzelle und der aktuellen Zelle platziert.

Wenn MultiSelect sie trueSelectionMode auf FullRowSelect oder FullColumnSelectfestgelegt ist, ist das Verhalten der Ankerzelle und der aktuellen Zelle identisch, aber nur vollständige Zeilen oder Spalten werden ausgewählt oder nicht ausgewählt.

Standardmäßige Mausbehandlung

Grundlegende Mausbehandlung

Hinweis

Durch Klicken auf eine Zelle mit der linken Maustaste wird immer die aktuelle Zelle geändert. Wenn Sie auf eine Zelle mit der rechten Maustaste klicken, wird ein Kontextmenü geöffnet, wenn eins verfügbar ist.

Mausaktion BESCHREIBUNG
Linke Maustaste gedrückt halten Macht die geklickte Zelle zur aktuellen Zelle und löst das DataGridView.CellMouseDown Ereignis aus.
Linke Maustaste nach oben Löst das Ereignis aus.DataGridView.CellMouseUp
Klicken mit der linken Maustaste Löst die DataGridView.CellClick und DataGridView.CellMouseClick Ereignisse aus.
Linke Maustaste gedrückt halten und über eine Spaltenüberschriftzelle ziehen Wenn die DataGridView.AllowUserToOrderColumns Eigenschaft lautet true, verschiebt die Spalte so, dass sie an einer neuen Position abgelegt werden kann.

Mausauswahl

Der mittleren Maustaste oder dem Mausrad ist kein Auswahlverhalten zugeordnet.

Wenn die MultiSelect-Eigenschaft auf false und die SelectionMode-Eigenschaft auf CellSelect festgelegt ist, tritt das folgende Verhalten auf.

Mausaktion BESCHREIBUNG
Klicken Markiert nur die aktuelle Zelle, wenn der Benutzer auf eine Zelle klickt. Kein Auswahlverhalten, wenn der Benutzer auf eine Zeilen- oder Spaltenüberschrift klickt.
Klicken Sie mit der rechten Maustaste Zeigt ein Kontextmenü an, falls eines verfügbar ist.

Das gleiche Verhalten tritt auf, wenn die SelectionMode-Einstellung auf RowHeaderSelect oder ColumnHeaderSelect gesetzt wird, außer dass, je nach Auswahlmodus, durch Klicken auf eine Zeilen- oder Spaltenüberschrift die vollständige Zeile oder Spalte markiert wird und die aktuelle Zelle auf die erste Zelle in der Zeile oder Spalte festgelegt wird.

Wenn SelectionMode auf FullRowSelect oder FullColumnSelect eingestellt ist, wird durch das Klicken auf eine beliebige Zelle in einer Zeile oder Spalte die gesamte Zeile oder Spalte ausgewählt.

Wenn MultiSelect diese Option aktiviert trueist, ändert das Klicken auf eine Zelle beim Drücken von STRG oder UMSCHALT eine Mehrfachzellenauswahl.

Wenn Sie beim Drücken der STRG-TASTE auf eine Zelle klicken, ändert die Zelle den Auswahlzustand, während alle anderen Zellen ihren aktuellen Auswahlstatus beibehalten.

Wenn Sie beim Drücken der UMSCHALTTASTE auf eine Zelle oder eine Reihe von Zellen klicken, umfasst die Auswahl alle Zellen zwischen der aktuellen Zelle und einer Ankerzelle, die sich an der Position der aktuellen Zelle befindet, bevor Sie das erste Mal klicken. Wenn Sie auf den Mauszeiger klicken und den Mauszeiger über mehrere Zellen ziehen, ist die Ankerzelle die Zelle, auf die am Anfang des Ziehvorgangs geklickt wird. Nachfolgende Klicks beim Drücken der UMSCHALTTASTE ändern die aktuelle Zelle, aber nicht die Ankerzelle. Andere Zellen im Steuerelement bleiben ausgewählt, wenn sie bereits ausgewählt wurden, aber sie können nicht ausgewählt werden, wenn die Mausnavigation sie vorübergehend zwischen der Ankerzelle und der aktuellen Zelle platziert.

Wenn MultiSelect auf true gesetzt ist und SelectionMode auf RowHeaderSelect oder ColumnHeaderSelect gesetzt ist, können Sie beim Drücken der UMSCHALTTASTE auf eine Zeilen- oder Spaltenüberschrift klicken (abhängig vom Auswahlmodus), um eine vorhandene Auswahl von vollständigen Zeilen oder Spalten zu ändern, sofern eine solche Auswahl vorhanden ist. Andernfalls wird die Auswahl gelöscht und eine neue Auswahl vollständiger Zeilen oder Spalten gestartet. Wenn Sie beim Drücken der STRG-TASTE auf eine Zeilen- oder Spaltenüberschrift klicken, wird die geklickte Zeile oder Spalte jedoch aus der aktuellen Auswahl hinzugefügt oder entfernt, ohne die aktuelle Markierung anderweitig zu ändern.

Wenn MultiSelect auf true gesetzt ist und SelectionMode auf FullRowSelect oder FullColumnSelect gesetzt ist, verhält sich das Klicken auf eine Zelle beim Drücken von UMSCHALT oder STRG auf die gleiche Weise, außer dass nur vollständige Zeilen und Spalten betroffen sind.

Siehe auch