Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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 true
SelectionMode 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 true
ist, ä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
.NET Desktop feedback