Standardverhalten von Tastatur und Maus im DataGridView-Steuerelement

Die folgenden Tabellen beschreiben, wie Benutzer per Tastatur und Maus mit dem DataGridView-Steuerelement interagieren können.

Hinweis

Um das Tastaturverhalten anzupassen, können Sie Standardtastaturereignisse wie KeyDown behandeln. Im Bearbeitungsmodus jedoch erhält das gehostete Bearbeitungssteuerelement die Tastatureingabe, sodass für das DataGridView-Steuerelement keine Tastaturereignisse auftreten. Für die Behandlung von Ereignissen des Bearbeitungssteuerelements werden die Handler in einem EditingControlShowing-Ereignishandler mit dem Bearbeitungssteuerelement verknüpft. Alternativ können Sie das Tastaturverhalten in einer DataGridView Unterklasse anpassen, indem Sie die Methoden ProcessDialogKey und ProcessDataGridViewKey überschreiben.

Standardtastataturbehandlung

Grundlegende Navigations- und Eingabetasten

Taste oder Tastenkombination Beschreibung
Pfeil nach unten Verschiebt den Fokus auf die Zelle direkt unterhalb der aktuellen Zelle. Bleibt ohne Wirkung, wenn der Fokus auf der letzten Zeile liegt.
NACH-LINKS-TASTE Verschiebt den Fokus auf die vorherige Zelle in der Zeile. Bleibt ohne Wirkung, wenn der Fokus auf der ersten Zelle in der Zeile liegt.
NACH-RECHTS-TASTE Verschiebt den Fokus auf die nächste Zelle in der Zeile. Bleibt ohne Wirkung, wenn der Fokus auf der letzten Zelle in der Zeile liegt.
Pfeil nach oben Verschiebt den Fokus auf die Zelle direkt über der aktuellen Zelle. Bleibt ohne Wirkung, wenn der Fokus auf der ersten Zeile liegt.
Home Verschiebt den Fokus auf die erste Zelle in der aktuellen Zeile.
ENDE Verschiebt den Fokus auf die letzte Zelle in der aktuellen Zeile.
BILD-AB Scrollt das Steuerelement um die Anzahl der Zeilen, die vollständig angezeigt werden, nach unten. Verschiebt den Fokus auf die letzte vollständig angezeigte Zeile, ohne Spalten zu ändern.
BILD-AUF Scrollt das Steuerelement um die Anzahl der Zeilen, die vollständig angezeigt werden, nach oben. Verschiebt den Fokus auf die erste angezeigte Zeile, ohne Spalten zu ändern.
TAB Wenn der Wert der StandardTab-Eigenschaft false ist, wird der Fokus auf die nächste Zelle in der aktuellen Zeile verschoben. Wenn der Fokus bereits auf der ersten Zelle der Zeile liegt, wird der Fokus auf die erste Zelle in der nächsten Zeile verschoben. Wenn der Fokus auf der letzten Zelle des Steuerelements liegt, wird der Fokus auf das nächste Steuerelement in der Aktivierreihenfolge des übergeordneten Containers verschoben.

Wenn der Wert der StandardTab-Eigenschaft true ist, wird der Fokus auf das nächste Steuerelement in der Aktivierreihenfolge des übergeordneten Containers verschoben.
UMSCHALT + Tab Wenn der Wert der StandardTab-Eigenschaft false ist, wird der Fokus auf die vorherige Zelle in der aktuellen Zeile verschoben. Wenn der Fokus bereits auf der ersten Zelle der Zeile liegt, wird der Fokus auf die letzte Zelle in der vorherigen Zeile verschoben. Wenn der Fokus auf der ersten Zelle des Steuerelements liegt, wird der Fokus auf das vorherige Steuerelement in der Aktivierreihenfolge des übergeordneten Containers verschoben.

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

Wenn der Wert der StandardTab-Eigenschaft true ist, wird der Fokus auf die nächste Zelle in der aktuellen Zeile verschoben. Wenn der Fokus bereits auf der ersten Zelle der Zeile liegt, wird der Fokus auf die erste Zelle in der nächsten Zeile verschoben. Wenn der Fokus auf der letzten Zelle des Steuerelements liegt, wird der Fokus auf das nächste Steuerelement in der Aktivierreihenfolge des übergeordneten Containers verschoben.
STRG + UMSCHALT + TAB Wenn der Wert der StandardTab-Eigenschaft false ist, wird der Fokus auf das vorherige Steuerelement in der Aktivierreihenfolge des übergeordneten Containers verschoben.

Wenn der Wert der StandardTab-Eigenschaft true ist, wird der Fokus auf die vorherige Zelle in der aktuellen Zeile verschoben. Wenn der Fokus bereits auf der ersten Zelle der Zeile liegt, wird der Fokus auf die letzte Zelle in der vorherigen Zeile verschoben. Wenn der Fokus auf der ersten Zelle des Steuerelements liegt, wird der Fokus auf das vorherige Steuerelement in der Aktivierreihenfolge des übergeordneten Containers verschoben.
STRG + Pfeiltaste Verschiebt den Fokus in Pfeilrichtung auf die am weitesten entfernte Zelle.
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/BILD-AUF Identisch mit BILD-AB bzw. BILD-AUF.
F2 Versetzt die aktuelle Zelle in den Zellbearbeitungsmodus, wenn der Wert der EditMode-Eigenschaft EditOnF2 oder EditOnKeystrokeOrF2 ist.
F3 Sortiert die aktuelle Spalte, wenn der Wert der DataGridViewColumn.SortMode-Eigenschaft Automatic ist. Dies ist gleichwertig mit dem Klicken auf die aktuelle Spaltenüberschrift. Seit .NET Framework 4.7.2 verfügbar. Um dieses Feature zu aktivieren, müssen Anwendungen auf .NET Framework 4.7.2 oder höher ausgerichtet sein oder explizit für Barrierefreiheitsverbesserungen mit AppContext-Optionen eingerichtet sein.
F4 Wenn es sich bei der aktuellen Zelle um eine DataGridViewComboBoxCell-Zelle handelt, wird die Zelle in den Bearbeitungsmodus versetzt und die Dropdownliste angezeigt.
ALT + NACH-OBEN/NACH-UNTEN Wenn es sich bei der aktuellen Zelle um eine DataGridViewComboBoxCell-Zelle handelt, wird die Zelle in den Bearbeitungsmodus versetzt und die Dropdownliste angezeigt.
ALT + NACH-LINKS, NACH-RECHTS Vergrößert oder verkleinert die Spaltenbreite der aktuellen Zelle.
LeerZchn Wenn es sich bei der aktuellen Zelle um eine DataGridViewButtonCell-, DataGridViewLinkCell- oder DataGridViewCheckBoxCell-Zelle handelt, werden die Ereignisse CellClick und CellContentClick ausgelöst. Wenn es sich bei der aktuellen Zelle um eine DataGridViewButtonCell-Zelle handelt, wird auch die Schaltfläche aktiviert. Wenn es sich bei der aktuellen Zelle um eine DataGridViewCheckBoxCell-Zelle handelt, wird auch der Aktivierungszustand geändert.
EINGABETASTE Commits alle Änderungen an der aktuellen Zelle und Zeile und verschiebt den Fokus direkt unterhalb der aktuellen Zelle auf die Zelle. Wenn sich der Fokus in der letzten Zeile befindet, werden Änderungen ohne Verschieben des Fokus vorgenommen.
ESC Wenn sich das Steuerelement im Bearbeitungsmodus befindet, wird die Bearbeitung abgebrochen. Wenn sich das Steuerelement nicht im Bearbeitungsmodus befindet, werden alle Änderungen, die an der aktuellen Zeile vorgenommen wurden, rückgängig gemacht, wenn das Steuerelement an eine Datenquelle gebunden ist, die den Bearbeitungsmodus unterstützt, oder der virtuelle Modus mit Commitbereich auf Zeilenebene implementiert wurde.
RÜCKTASTE Löscht beim Bearbeiten einer Zelle das Zeichen vor der Einfügemarke.
Löschen Löscht beim Bearbeiten einer Zelle das Zeichen hinter der Einfügemarke.
STRG + EINGABETASTE Übernimmt alle Änderungen an der aktuellen Zelle, ohne den Fokus zu verschieben. Übernimmt außerdem alle Änderungen an der aktuellen Zeile, wenn das Steuerelement an eine Datenquelle gebunden ist, die den Bearbeitungsmodus unterstützt, oder der virtuelle Modus mit Commitbereich 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 für einen DBNull-Zellwert der Wert der NullValue-Eigenschaft von DataGridViewCellStyle für die aktuelle Zelle.

Auswahltasten

Wenn die MultiSelect-Eigenschaft auf false und die SelectionMode-Eigenschaft auf CellSelect festgelegt ist, wird bei einem Wechsel der aktuellen Zelle mit den Navigationstasten die neue Zelle ausgewählt. Die UMSCHALT-, STRG- und ALT-Taste wirken sich nicht auf dieses Verhalten aus.

Wenn die SelectionMode auf RowHeaderSelect oder ColumnHeaderSelect festgelegt ist, ist das Verhalten identisch, aber mit den folgenden Ergänzungen.

Taste 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/BILD-AB, POS1, ENDE) Wenn eine vollständige Zeile oder Spalte ausgewählt ist, wird bei einem Wechsel von der aktuellen Zelle in eine neue Zeile oder Spalte die vollständige neue Zeile oder Spalte ausgewählt (je nach Auswahlmodus).

Wenn MultiSelect auf false und SelectionMode auf FullRowSelect oder FullColumnSelect festgelegt ist, wird bei einem Wechsel von der aktuellen Zelle in eine neue Zeile oder Spalte mit der Tastatur in die vollständige neue Zeile oder Spalte ausgewählt. Die UMSCHALT-, STRG- und ALT-Taste wirken sich nicht auf dieses Verhalten aus.

Wenn MultiSelect auf true festgelegt ist, ändert sich das Navigationsverhalten nicht. Wenn bei der Navigation mit der Tastatur die UMSCHALTTASTE (einschließlich STRG + UMSCHALT) gedrückt ist, wird eine Mehrzellenauswahl geändert. Vor dem Beginn der Navigation markiert das Steuerelement die aktuelle Zelle als Ankerzelle. Wenn die Navigation bei gedrückter UMSCHALTTASTE erfolgt, umfasst die Auswahl alle Zeilen zwischen der Ankerzeile und der aktuellen Zeile. Andere Zellen im Steuerelement bleiben ausgewählt, wenn sie bereits ausgewählt wurden. Sie können aber abgewählt werden, wenn sie durch die Tastaturnavigation vorübergehend zwischen Ankerzelle und aktueller Zelle platziert werden.

Wenn MultiSelect auf true und SelectionMode auf FullRowSelect oder FullColumnSelect festgelegt ist, ist das Verhalten der Ankerzelle und der aktuellen Zelle identisch, es werden aber nur vollständige Zeilen oder Spalten ausgewählt oder abgewählt.

Standardmausbehandlung

Grundlegende Mausbehandlung

Hinweis

Durch Klicken auf eine Zelle mit der linken Maustaste wird immer die aktuelle Zelle geändert. Durch Klicken auf eine Zelle mit der rechten Maustaste wird ein Kontextmenü geöffnet (sofern verfügbar).

Mausaktion BESCHREIBUNG
Drücken der linken Maustaste Macht die angeklickte Zelle zur aktuellen Zelle, und löst das DataGridView.CellMouseDown-Ereignis aus.
Loslassen der linken Maustaste Löst das DataGridView.CellMouseUp-Ereignis aus.
Klicken der linken Maustaste Löst die Ereignisse DataGridView.CellClick und DataGridView.CellMouseClick aus.
Drücken der linken Maustaste und Ziehen auf eine Zelle mit einer Spaltenüberschrift Wenn die DataGridView.AllowUserToOrderColumns-Eigenschaft true ist, wird die Spalte so verschoben, 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 Sie auf Wählt nur die aktuelle Zelle aus, wenn der Benutzer auf eine Zelle klickt. Wenn der Benutzer auf eine Zeilen- oder Spaltenüberschrift klickt, wird nichts ausgewählt.
Klicken Sie mit der rechten Maustaste auf Zeigt ein Kontextmenü an, sofern eins verfügbar ist.

Dasselbe Verhalten tritt auf, wenn SelectionMode auf RowHeaderSelect oder ColumnHeaderSelect festgelegt ist, außer dass abhängig vom Auswahlmodus durch Klicken auf eine Zeilen- oder Spaltenüberschrift die vollständige Zeile oder Spalte ausgewählt und die erste Zelle in der Zeile oder Spalte als aktuelle Zelle festgelegt wird.

Wenn SelectionMode auf FullRowSelect oder FullColumnSelect festgelegt ist, wird durch Klicken auf eine beliebige Zelle in einer Zeile oder Spalte die vollständige Zeile oder Spalte ausgewählt.

Wenn MultiSelect auf true festgelegt ist, wird durch Klicken auf eine Zelle bei gedrückter STRG- oder UMSCHALTTASTE-Taste eine Mehrzellenauswahl geändert.

Wenn Sie bei gedrückter STRG-TASTE auf eine Zelle klicken, wird der Auswahlzustand der Zelle geändert, der aktuelle Auswahlzustand aller anderen Zeilen wird jedoch beibehalten.

Wenn Sie bei gedrückter der UMSCHALTTASTE auf eine Zelle oder eine Reihe von Zellen klicken, umfasst die Auswahl alle Zellen zwischen der aktuellen Zelle und einer Ankerzelle (Position der aktuellen Zelle vor dem ersten Klick). Wenn Sie Klicken und den Mauszeiger über mehrere Zellen ziehen, ist die Ankerzelle die Zelle, auf die am Anfang des Ziehvorgangs geklickt wurde. Nachfolgende Klicks bei gedrückter UMSCHALTTASTE ändern die aktuelle Zelle, aber nicht die Ankerzelle. Andere Zellen im Steuerelement bleiben ausgewählt, wenn sie bereits ausgewählt wurden. Sie können aber abgewählt werden, wenn sie durch die Mausnavigation vorübergehend zwischen Ankerzelle und aktueller Zelle platziert werden.

Wenn MultiSelect auf true und SelectionMode auf RowHeaderSelect oder ColumnHeaderSelect festgelegt ist, wird durch Klicken auf eine Zeilen- oder Spaltenüberschrift (abhängig vom Auswahlmodus) bei gedrückter UMSCHALTTASTE eine vorhandene Auswahl vollständiger Zeilen oder Spalten geändert (sofern eine solche Auswahl vorhanden ist). Andernfalls wird die Auswahl gelöscht und eine neue Auswahl vollständiger Zeilen oder Spalten bewirkt. Wenn Sie jedoch bei gedrückter STRG-TASTE auf eine Zeilen- oder Spaltenüberschrift klicken, wird die angeklickte Zeile oder Spalte zur aktuellen Auswahl hinzugefügt oder daraus entfernt, ohne die aktuelle Auswahl anderweitig zu ändern.

Wenn MultiSelect auf true und SelectionMode auf FullRowSelect oder FullColumnSelect festgelegt ist, ist das Verhalten beim Klicken auf eine Zelle bei gedrückter UMSCHALT- oder STRG-TASTE identisch, außer dass nur vollständige Zeilen und Spalten betroffen sind.

Weitere Informationen