Megosztás a következőn keresztül:


Alapértelmezett billentyűzet- és egér viselkedés a DataGridView vezérlővel

Az alábbi táblázatok azt mutatják be, hogyan használhatják a felhasználók a DataGridView vezérlőt billentyűzettel és egérrel.

Megjegyzés:

A billentyűzet viselkedésének testreszabásához kezelheti a szokásos billentyűzeteseményeket, például a KeyDown. Szerkesztési módban azonban az üzemeltetett szerkesztési vezérlő megkapja a billentyűzetbemenetet, és a DataGridView vezérlő billentyűzeteseményei nem fordulnak elő. A szerkesztésvezérlési események kezeléséhez csatolja a kezelőket egy EditingControlShowing eseménykezelő szerkesztési vezérlőjéhez. Másik lehetőségként testre szabhatja a billentyűzet viselkedését egy DataGridView alosztályban a ProcessDialogKey és ProcessDataGridViewKey metódusok felülbírálásával.

Alapértelmezett billentyűzetkezelés

Egyszerű navigációs és belépési kulcsok

Kulcs- vagy kulcskombináció Leírás
Lefelé mutató nyíl A fókuszt közvetlenül az aktuális cella alatti cellára helyezi. Ha a fókusz az utolsó sorban van, nem csinál semmit.
Balra nyíl A fókusz áthelyezése a sor előző cellájába. Ha a fókusz a sor első cellájában van, semmit sem tesz.
Jobb irányba mutató nyíl A fókusz áthelyezése a sor következő cellájába. Ha a fókusz a sor utolsó cellájában van, nem tesz semmit.
Felfelé mutató nyíl A fókuszt az aktuális cella felett lévő cellára helyezi. Ha a fókusz az első sorban van, nem csinál semmit.
Kezdőlap A fókusz áthelyezése az aktuális sor első cellájába.
vég A fókusz áthelyezése az aktuális sor utolsó cellájára.
lap lefelé Lefelé görgeti a vezérlőelemet a teljesen megjelenített sorok számával. Áthelyezi a fókuszt az utolsó teljesen megjelenített sorra az oszlopok módosítása nélkül.
lap felfelé A vezérlőelemet felfelé görgeti a teljes mértékben megjelenített sorok számával. A fókusz áthelyezése az első megjelenített sorra oszlopok módosítása nélkül.
Tabulátor Ha a StandardTab tulajdonság értéke false, a fókusz az aktuális sor következő cellájába kerül. Ha a fókusz már a sor utolsó cellájában van, akkor a fókuszt a következő sor első cellájára helyezi. Ha a fókusz a vezérlő utolsó cellájában van, a fókuszt a szülőtároló tabulátorsorrendjének következő vezérlőelemére helyezi.

Ha a StandardTab tulajdonság értéke true, a fókuszt a szülőtároló tabulátorsorrendjének következő vezérlőelemére helyezi.
Shift + Tabulátor Ha a StandardTab tulajdonság értéke false, a fókusz az aktuális sor előző cellájába kerül. Ha a fókusz már a sor első cellájában van, a fókuszt az előző sor utolsó cellájába helyezi. Ha a fókusz a vezérlő első cellájában van, a fókuszt a szülőtároló tabulátorsorrendjében az előző vezérlőelemre helyezi.

Ha a StandardTab tulajdonság értéke true, a fókuszt a szülőtároló tabulátorsorrendjében lévő előző vezérlőelemre helyezi.
Ctrl + Tabulátor Ha a StandardTab tulajdonság értéke false, a fókuszt a szülőtároló tabulátorsorrendjének következő vezérlőelemére helyezi.

Ha a StandardTab tulajdonság értéke true, a fókusz az aktuális sor következő cellájába kerül. Ha a fókusz már a sor utolsó cellájában van, akkor a fókuszt a következő sor első cellájára helyezi. Ha a fókusz a vezérlő utolsó cellájában van, a fókuszt a szülőtároló tabulátorsorrendjének következő vezérlőelemére helyezi.
Ctrl + Műszak + Tabulátor Ha a StandardTab tulajdonság értéke false, a fókuszt a szülőtároló tabulátorsorrendjében lévő előző vezérlőelemre helyezi.

Ha a StandardTab tulajdonság értéke true, a fókusz az aktuális sor előző cellájába kerül. Ha a fókusz már a sor első cellájában van, a fókuszt az előző sor utolsó cellájába helyezi. Ha a fókusz a vezérlő első cellájában van, a fókuszt a szülőtároló tabulátorsorrendjében az előző vezérlőelemre helyezi.
Ctrl + nyíl A fókuszt a nyíl irányában a legtávolabbi cellára helyezi.
Ctrl + Otthon A fókusz áthelyezése a vezérlő első cellájába.
Ctrl + Vég Áthelyezi a fókuszt a vezérlő utolsó cellájába.
Ctrl + Oldal le/fel Ugyanaz, mint Lap lefelé vagy Lap felfelé.
F2 Az aktuális cellát cella szerkesztési módba helyezi, ha a EditMode tulajdonság értéke EditOnF2 vagy EditOnKeystrokeOrF2.
F3 Az aktuális oszlop rendezése, ha a DataGridViewColumn.SortMode tulajdonság értéke Automatic. Ugyanaz, mintha az aktuális oszlopfejlécre kattintanak. A .NET-keretrendszer 4.7.2-től érhető el. A funkció engedélyezéséhez az alkalmazásoknak a .NET-keretrendszer 4.7.2-s vagy újabb verzióit kell célba vennie, vagy kifejezetten az AppContext kapcsolókkal kell akadálymentességi fejlesztéseket használniuk.
F4 Ha az aktuális cella egy DataGridViewComboBoxCell, a cellát szerkesztési módba helyezi, és megjeleníti a legördülő listát.
Alt + Fel/Le nyílbillentyű Ha az aktuális cella egy DataGridViewComboBoxCell, a cellát szerkesztési módba helyezi, és megjeleníti a legördülő listát.
Alt + Balra/Jobbra nyíl Növeli vagy csökkenti az aktuális cella oszlopának szélességét.
szóköz Ha az aktuális cella egy DataGridViewButtonCell, DataGridViewLinkCellvagy DataGridViewCheckBoxCell, akkor a CellClick és CellContentClick eseményeket kiváltja. Ha az aktuális cella egy DataGridViewButtonCell, akkor a gombot is lenyomja. Ha az aktuális cella egy DataGridViewCheckBoxCell, az ellenőrzés állapotát is módosítja.
Lépj be Véglegesíti az aktuális cella és sor módosításait, és a fókuszt közvetlenül az aktuális cella alatti cellára helyezi. Ha a fókusz az utolsó sorban van, a fókusz áthelyezése nélkül véglegesíti a módosításokat.
Esc Ha a vezérlő szerkesztési módban van, megszakítja a szerkesztést. Ha a vezérlő nincs szerkesztési módban, visszaállítja az aktuális sor módosításait, ha a vezérlő olyan adatforráshoz van kötve, amely támogatja a szerkesztést vagy a virtuális módot, sorszintű véglegesítési hatókörrel lett implementálva.
Backspace billentyű Cella szerkesztésekor törli a beszúrási pont előtti karaktert.
Törlés Cella szerkesztésekor törli a karaktert a beszúrási pont után.
Ctrl + Belép A fókusz áthelyezése nélkül véglegesíti az aktuális cella módosításait. Az aktuális sor módosításait is véglegesíti, ha a vezérlő olyan adatforráshoz van kötve, amely támogatja a szerkesztést vagy a virtuális módot, sorszintű véglegesítési hatókörrel lett implementálva.
Ctrl + 0 Ha a cella szerkeszthető, DBNull.Value értéket ad meg az aktuális cellába. Alapértelmezés szerint egy DBNull cellaérték megjelenítési értéke az aktuális cellára érvényes NullValueDataGridViewCellStyle tulajdonságának értéke.

Kijelölési kulcsok

Ha a MultiSelect tulajdonság értéke false, és a SelectionMode tulajdonság értéke CellSelect, a navigációs kulcsok használatával az aktuális cella módosítása a kijelölést az új cellára módosítja. A Shift, Ctrlés Alt billentyűk nem befolyásolják ezt a viselkedést.

Ha a SelectionModeRowHeaderSelect vagy ColumnHeaderSelectértékre van állítva, ugyanez a viselkedés történik, de az alábbi kiegészítésekkel.

Kulcs- vagy kulcskombináció Leírás
Shift + szóköz Kijelöli a teljes sort vagy oszlopot (ugyanaz, mint a sor- vagy oszlopfejlécre való kattintással).
navigációs kulcs (nyílbillentyű, Lap fel/le, Kezdőlap, ) Ha egy teljes sor vagy oszlop van kijelölve, az aktuális cellát új sorra vagy oszlopra módosítva áthelyezi a kijelölést a teljes új sorba vagy oszlopba (a kijelölési módtól függően).

Ha MultiSelectfalse van beállítva, és a SelectionModeFullRowSelect vagy FullColumnSelectértékre van állítva, az aktuális cellát új sorra vagy oszlopra módosítva a billentyűzettel áthelyezi a kijelölést a teljes új sorra vagy oszlopra. A Shift, Ctrlés Alt billentyűk nem befolyásolják ezt a viselkedést.

Ha MultiSelecttrueértékre van állítva, a navigációs viselkedés nem változik, de ha Shift (beleértve Ctrl + Shift) billentyűkombinációt lenyomva navigál a billentyűzettel, akkor a többcellás kijelölés módosul. A navigáció megkezdése előtt a vezérlő horgonycellaként jelöli meg az aktuális cellát. Ha navigálás közben lenyomva tartja a(z) Shift billentyűt, a kijelölés a horgonycella és az aktuális cella közötti összes cellát tartalmazza. A vezérlő más cellái akkor is kijelölve maradnak, ha már ki lettek jelölve, de előfordulhat, hogy a billentyűzet-navigáció ideiglenesen a horgonycella és az aktuális cella közé helyezi őket.

Ha a MultiSelect-t true-re állítjuk, és a SelectionMode-t FullRowSelect-ra vagy FullColumnSelect-re állítjuk, a horgonycella és az aktuális cella viselkedése megegyezik, de csak a teljes sorok vagy oszlopok lesznek kijelölve vagy törölve.

Alapértelmezett egérkezelés

Egyszerű egérkezelés

Megjegyzés:

Ha a bal egérgombbal egy cellára kattint, az mindig módosítja az aktuális cellát. A cellára jobb egérgombbal kattintva megnyílik egy helyi menü, ha elérhető.

Egérművelet Leírás
bal egérgomb lenyomva A kattintott cellát az aktuális cellává teszi, és a DataGridView.CellMouseDown eseményt emeli ki.
Bal egérgomb felfelé A DataGridView.CellMouseUp eseményt emeli ki
Bal egérgomb kattintás A DataGridView.CellClick és DataGridView.CellMouseClick eseményeket aktiválja
Nyomja le a bal egérgombot, majd húzza egy oszlopfejléccellára. Ha a DataGridView.AllowUserToOrderColumns tulajdonság true, mozgatja az oszlopot úgy, hogy új pozícióba tehető legyen.

Egér kijelölése

Nincs kijelölési viselkedés társítva a középső egérgombbal vagy az egérkerékkel.

Ha a MultiSelect tulajdonság értéke false, és a SelectionMode tulajdonság értéke CellSelect, a következő viselkedés következik be.

Egérművelet Leírás
Kattints Csak az aktuális cellát jelöli ki, ha a felhasználó egy cellára kattint. Nincs kijelölési viselkedés, ha a felhasználó egy sor- vagy oszlopfejlécre kattint.
Kattintson a jobb gombbal Elérhetőség esetén megjelenít egy helyi menüt.

Ugyanez a viselkedés akkor fordul elő, ha a SelectionModeRowHeaderSelect vagy ColumnHeaderSelectértékre van állítva, azzal a kivételrel, hogy a kijelölési módtól függően a sor- vagy oszlopfejlécre kattintva kijelöli a teljes sort vagy oszlopot, és az aktuális cellát a sor vagy oszlop első cellájára állítja.

Ha SelectionModeFullRowSelect vagy FullColumnSelectértékre van állítva, a sor vagy oszlop bármelyik cellájába kattintva kijelölheti a teljes sort vagy oszlopot.

Ha értékre van állítva, a Ctrl vagy Shift billentyű lenyomása közben egy cellára kattintva módosíthatja a többcellás kijelölést.

Ha egy cellára kattint, miközben lenyomja Ctrl, a cella módosítja a kijelölési állapotát, míg az összes többi cella megtartja az aktuális kijelölési állapotát.

Ha a Shiftlenyomásakor egy cellára vagy cellasorozatra kattint, a kijelölés az aktuális cella és az aktuális cella pozíciójában lévő horgonycella közötti összes cellát tartalmazza az első kattintás előtt. Ha több cellára kattint, és húzza az egérmutatót, a horgonycella az húzási művelet elején található cella. Az ezt követő kattintások Shift billentyű lenyomásakor az aktuális cellát módosítják, a horgonycellát azonban nem. A vezérlőelem más cellái akkor is kijelölve maradnak, ha már ki lettek jelölve, de előfordulhat, hogy az egérnavigáció ideiglenesen a horgonycella és az aktuális cella közé helyezi őket.

Ha van beállítva, és vagy , a sor- vagy oszlopfejlécre (a kijelölési módtól függően) kattintva a Shift lenyomásával módosíthatja a teljes sorok vagy oszlopok meglévő kijelölését, ha létezik ilyen kijelölés. Ellenkező esetben törli a kijelölést, és új kijelölést indít el a teljes sorokból vagy oszlopokból. Ha Ctrllenyomása közben egy sor- vagy oszlopfejlécre kattint, a kattintott sor vagy oszlop hozzáadódik vagy eltávolítódik az aktuális kijelölésből az aktuális kijelölés egyéb módosítása nélkül.

Ha van beállítva, és vagy van beállítva, a Shift vagy billentyűkombináció lenyomása közben a cellára kattintva a Ctrl ugyanúgy viselkedik, kivéve, hogy csak a teljes sorokat és oszlopokat érinti.

Lásd még