Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Megjegyzés:
A DataGridView vezérlő lecseréli és hozzáadja a funkciót a DataGrid vezérlőelemhez; A DataGrid vezérlőelem azonban megmarad a visszamenőleges kompatibilitás és a jövőbeli használat érdekében is, ha úgy dönt. További információ: Különbségek a Windows Forms DataGridView és a DataGrid Controlsközött.
A Windows Forms DataGrid vezérlő sorok és oszlopok sorozatában jeleníti meg az adatokat. A legegyszerűbb eset az, ha a rács egyetlen táblával rendelkező adatforráshoz van kötve, amely nem tartalmaz kapcsolatokat. Ebben az esetben az adatok egyszerű sorokban és oszlopokban jelennek meg, mint egy számolótáblában. További információ az adatok más vezérlőkhöz való kötéséről: Adatkötés és Windows Forms.
Ha a DataGrid rendszer több kapcsolódó táblával rendelkező adatokhoz van kötve, és ha a rácson engedélyezve van a navigáció, a rács minden sorban kibontókat jelenít meg. A kiterjesztővel a felhasználó áttérhet a szülőtábláról a gyermektáblára. A csomópontra kattintva megjelenik a gyermektábla, a vissza gombra kattintva pedig az eredeti szülőtábla jelenik meg. Így a rács megjeleníti a táblák közötti hierarchikus kapcsolatokat.
Az alábbi képernyőképen egy dataGrid látható, amely több táblával rendelkező adatokhoz van kötve:
Ez DataGrid felhasználói felületet biztosít az adathalmazokhoz, a kapcsolódó táblák közötti navigálást, valamint a sokoldalú formázási és szerkesztési képességeket.
Az adatok megjelenítése és kezelése külön függvények: A vezérlő kezeli a felhasználói felületet, míg az adatfrissítéseket a Windows Forms adatkötési architektúrája és a .NET-keretrendszer adatszolgáltatói kezelik. Ezért több, ugyanahhoz az adatforráshoz kötött vezérlő szinkronban marad.
Megjegyzés:
Ha ismeri a Visual Basic 6.0 DataGrid vezérlőt, a Windows Forms DataGrid vezérlőben jelentős különbségeket talál.
Ha a rács egyhez DataSetvan kötve, a rendszer automatikusan létrehozza, formázza és kitölti az oszlopokat és sorokat. További információ: Adatkötés és Windows-űrlapok. A vezérlő létrehozását DataGrid követően igény szerint hozzáadhat, törölhet, átrendezhet és formázhat oszlopokat és sorokat.
Adatok kötése a vezérlőhöz
Ahhoz, hogy a DataGrid vezérlő működjön, egy adatforráshoz kell kötni tervezéskor a DataSource és DataMember tulajdonságok használatával vagy futásidőben a SetDataBinding módszerrel. Ez a DataGrid kötés egy példányosított adatforrás-objektumra mutat, például egy DataSet vagy DataTable. A DataGrid vezérlő az adatokon végrehajtott műveletek eredményeit jeleníti meg. A legtöbb adatspecifikus művelet nem a DataGrid használatával történik, hanem az adatforráson keresztül.
Ha a kötött adathalmaz adatai bármilyen mechanizmussal frissülnek, a DataGrid vezérlő tükrözi a változásokat. Ha az adatrács és annak táblázatstílusai és oszlopstílusai rendelkeznek a ReadOnly tulajdonság beállításával false, az adathalmaz adatai frissíthetők a DataGrid vezérlőn keresztül.
Egyszerre csak egy tábla jeleníthető meg DataGrid . Ha szülő-gyermek kapcsolat van definiálva a táblák között, a felhasználó a kapcsolódó táblák között mozogva kiválaszthatja a vezérlőben DataGrid megjelenítendő táblát. A vezérlők ADO.NET adatforráshoz való kötésével DataGrid kapcsolatos információk a tervezéskor vagy a futási időben: Útmutató: A Windows Forms DataGrid-vezérlő kötése adatforráshoz.
Érvényes adatforrások a DataGrid számára:
DataTable osztály
DataView osztály
DataSet osztály
DataViewManager osztály
Ha a forrás egy adatkészlet, az adathalmaz lehet egy objektum az űrlapon, vagy egy XML-webszolgáltatás által az űrlapnak átadott objektum. A típusos vagy típus nélküli adathalmazokhoz kapcsolódhat.
A vezérlőelemeket további struktúrákhoz is kötheti DataGrid , ha a struktúra objektumai, például a tömb elemei nyilvános tulajdonságokat fednek fel. A rács megjeleníti a struktúra elemeinek összes nyilvános tulajdonságát. Ha például egy ügyfélobjektum-tömbhöz köti a DataGrid vezérlőt, a rács megjeleníti az ügyfélobjektumok összes nyilvános tulajdonságát. Bizonyos esetekben ez azt jelenti, hogy bár a szerkezethez kötést végezhet, az eredményként kapott kötött szerkezet nem feltétlenül rendelkezik gyakorlati alkalmazással. Köthet például egész számokat tartalmazó tömbhöz, de mivel az Integer adattípus nem támogatja a nyilvános tulajdonságot, a rács nem jeleníthet meg adatokat.
A következő struktúrákhoz kapcsolódhat, ha azok elemei nyilvános tulajdonságokat fednek fel:
Minden olyan összetevő, amely megvalósítja az interfészt IList . Ide tartoznak az egydimenziós tömbök.
Minden olyan összetevő, amely megvalósítja az interfészt IListSource .
Minden olyan összetevő, amely megvalósítja az interfészt IBindingList .
További információ a lehetséges adatforrásokról: Windows Forms által támogatott adatforrások.
Rács megjelenítés
A DataGrid vezérlőt gyakran arra használják, hogy egyetlen adattáblát jelenítsen meg egy adathalmazból. A vezérlővel azonban több táblát is megjeleníthet, beleértve a kapcsolódó táblákat is. A rács megjelenítése az adatforrásnak megfelelően automatikusan módosul. Az alábbi táblázat a különböző konfigurációkhoz megjelenített adatokat mutatja be.
| Adatkészlet tartalma | Mi jelenik meg? |
|---|---|
| Egyetlen tábla. | A táblázat egy rácsban jelenik meg. |
| Több tábla. | A rács megjeleníthet egy fastruktúra nézetet, amelyben a felhasználók navigálhatnak a megjeleníteni kívánt táblázat megtalálásához. |
| Több kapcsolódó tábla. | A rács megjeleníthet egy fa nézetes elrendezést, amely segítségével táblákat választhat ki, vagy megadhatja, hogy a rács a szülőtáblát jelenítse meg. A szülőtábla rekordjai lehetővé teszik a felhasználók számára a kapcsolódó gyermeksorok közötti navigálást. |
Megjegyzés:
Az adathalmaz táblái egy DataRelation segítségével kapcsolódnak egymáshoz. Lásd még: Kapcsolatok létrehozása adathalmazok között.
Amikor a DataGrid vezérlő egy táblázatot jelenít meg, és a AllowSorting tulajdonság true értékre van állítva, az adatok az oszlopfejlécekre kattintva újrarendezhetők. A felhasználó sorokat is hozzáadhat, és cellákat szerkeszthet.
A táblák halmaza közötti kapcsolatok a navigációs szülő-gyermek struktúrával jelennek meg a felhasználók számára. A szülőtáblák a legmagasabb szintű adatok, a gyermektáblák pedig azok az adattáblák, amelyek a szülőtáblák egyes listáiból származnak. A kibontók minden gyermektáblát tartalmazó szülősorban megjelennek. Ha rákattint egy kibontóra, a gyermektáblákra mutató webes hivatkozásokat tartalmazó listát hoz létre. Amikor a felhasználó kiválaszt egy hivatkozást, megjelenik a gyermektábla. A szülősorok megjelenítése/elrejtése ikonra (
) kattintva elrejtheti a szülőtáblával kapcsolatos információkat, vagy ha a felhasználó korábban elrejtette azt, újra megjelenik. A felhasználó a vissza gombra kattintva visszaléphet a korábban megtekintett táblára.
Oszlopok és sorok
A DataGrid egy DataGridTableStyle vezérlő DataGrid tulajdonságába tartozó TableStyles objektumok gyűjteményéből áll. A táblázatstílus tartalmazhat olyan DataGridColumnStyle objektumgyűjteményeket, amelyek a GridColumnStyles tulajdonságban vannak DataGridTableStyle. A TableStyles a GridColumnStyles Tulajdonságok ablakban elérhető gyűjteményszerkesztőkkel szerkesztheti.
Bármely DataGridTableStyle, amely kapcsolódik a DataGrid vezérlőhöz, elérhető a GridTableStylesCollection által. A GridTableStylesCollection tervezőben szerkeszthető a gyűjteményszerkesztővel DataGridTableStyle , vagy programozott módon a DataGrid vezérlő tulajdonságán TableStyles keresztül.
Az alábbi ábrán a DataGrid vezérlőben található objektumok láthatók:
A táblázatstílusok és oszlopstílusok szinkronizálódnak a DataTable és DataColumn objektumokkal úgy, hogy a MappingName tulajdonságokat a megfelelő TableName és ColumnName tulajdonságokra állítják. Ha egy DataGridTableStyle érvényes adatforráshoz kötött vezérlőelemhez DataGrid oszlopstílusok nem fűződnek hozzá, és a MappingName táblázatstílus tulajdonsága érvényes TableName tulajdonságra van állítva, az adott táblázatstílushoz objektumgyűjtemény DataGridColumnStyle jön létre. Minden DataColumn, amely a Columns gyűjteményében található a DataTable-nek, egy hozzá tartozó DataGridColumnStyle kerül hozzáadásra a GridColumnStylesCollection-hoz. A GridColumnStylesCollection a GridColumnStylesDataGridTableStyle tulajdonságán keresztül érhető el. Az oszlopok hozzáadhatók vagy törölhetők a rácsról a Add-on keresztül a Remove vagy a GridColumnStylesCollection metódus alkalmazásával. További információ : Táblák és oszlopok hozzáadása a Windows Forms DataGrid vezérlőhöz , és útmutató: Oszlopok törlése vagy elrejtése a Windows Forms DataGrid vezérlőben.
Az oszloptípusok gyűjteménye gazdag formázási és szerkesztési képességekkel bővíti az DataGridColumnStyle osztályt. Minden oszloptípus öröklődik az DataGridColumnStyle alaposztálytól. Az a létrehozott osztály attól a DataType tulajdonságtól függ, amelyen az DataColumn alapul, és amely a DataGridColumn-ből származik. Például egy DataColumn, amelynek a DataType tulajdonsága Boolean értékre van beállítva, a DataGridBoolColumn-hoz lesz társítva. Az alábbi táblázat ezeket az oszloptípusokat ismerteti.
| Oszloptípus | Leírás |
|---|---|
| DataGridTextBoxColumn | Formázott vagy formázatlan sztringként fogadja el és jeleníti meg az adatokat. A szerkesztési képességek ugyanazok, mint az adatok egyszerű TextBoxszerkesztéséhez. Innen örököl: DataGridColumnStyle. |
| DataGridBoolColumn | Fogadja és jeleníti meg truea , falseés null értékeket. Innen örököl: DataGridColumnStyle. |
Az oszlop jobb szélére duplán kattintva átméretezi az oszlopot a teljes felirat és a legszélesebb bejegyzés megjelenítéséhez.
Táblázatstílusok és oszlopstílusok
Amint létrehozta a vezérlő alapértelmezett formátumát DataGrid , testre szabhatja azokat a színeket, amelyek akkor lesznek használva, amikor bizonyos táblák megjelennek az adatrácson belül.
Az DataGridTableStyle osztály példányainak létrehozásával érhető ez el. A táblázatstílusok az adott táblák formázását határozzák meg, amelyek eltérnek a vezérlőelem alapértelmezett formázásától DataGrid . Előfordulhat, hogy mindegyik táblázathoz egyszerre csak egy táblázatstílus van definiálva.
Előfordulhat, hogy egy adott oszlop másként néz ki, mint egy adott adattábla többi oszlopa. Az GridColumnStyles tulajdonság használatával hozhat létre egyéni oszlopstílusokat.
Az oszlopstílusok ugyanúgy kapcsolódnak az adathalmaz oszlopaihoz, mint a táblázatstílusok az adattáblákhoz. Ahogy minden táblázathoz egyszerre csak egy táblázatstílus van definiálva, úgy az egyes oszlopokhoz is csak egy oszlopstílus van definiálva, egy adott táblázatstílusban. Ez a kapcsolat az oszlop MappingName tulajdonságában van definiálva.
Ha olyan táblázatstílust hozott létre, amely nem tartalmaz oszlopstílusokat, a Visual Studio akkor adja hozzá az alapértelmezett oszlopstílusokat, amikor az űrlap és a rács futásidőben jön létre. Ha azonban létrehozott egy táblázatstílust, és hozzáadott hozzá oszlopstílusokat, a Visual Studio nem hoz létre oszlopstílusokat. Emellett meg kell határoznia az oszlopstílusokat, és a leképezési névvel kell hozzárendelnie őket, hogy a kívánt oszlopok megjelenjenek a rácson.
Mivel az adatrács oszlopstílus hozzárendelésével megadhatja, hogy mely oszlopok szerepelnek az adatrácsban, és nincs oszlopstílus hozzá rendelve az oszlopokhoz, az adathalmazban olyan adatoszlopokat is felvehet, amelyek nem jelennek meg a rácson. Mivel azonban az adatoszlop szerepel az adathalmazban, programozott módon szerkesztheti a nem megjelenített adatokat.
Megjegyzés:
Általában oszlopstílusokat hozhat létre, és hozzáadhatja őket az oszlopstílusok gyűjteményéhez, mielőtt táblázatstílusokat ad hozzá a táblázatstílusok gyűjteményéhez. Ha üres táblázatstílust ad hozzá a gyűjteményhez, a rendszer automatikusan létrehozza az oszlopstílusokat. Következésképpen kivétel jelenik meg, ha ismétlődő értékeket tartalmazó MappingName új oszlopstílusokat próbál hozzáadni az oszlopstílusok gyűjteményéhez.
Előfordulhat, hogy csak egy oszlopot szeretne módosítani a sok oszlop között; Az adathalmaz például 50 oszlopot tartalmaz, és ezek közül csak 49-et szeretne. Ebben az esetben egyszerűbb importálni mind az 50 oszlopot, és programozott módon eltávolítani egyet, ahelyett, hogy programozott módon hozzáadja a kívánt 49 oszlopot.
Formázás
A vezérlőelemre alkalmazható formázás magában foglalja a szegélystílusokat, a DataGrid rácsvonalstílusokat, a betűtípusokat, a felirat tulajdonságait, az adatok igazítását és a sorok közötti váltakozó háttérszíneket. További információ : A Windows Forms DataGrid vezérlő formázása.
Események
Az olyan gyakori vezérlőesemények mellett, mint MouseDowna , Enterés Scroll, a vezérlő támogatja a DataGrid rácson belüli szerkesztéssel és navigációval kapcsolatos eseményeket. A CurrentCell tulajdonság határozza meg, hogy melyik cella van kijelölve. Az CurrentCellChanged esemény akkor jön létre, amikor a felhasználó egy új cellára lép. Amikor a felhasználó szülő-gyermek kapcsolatokon keresztül navigál egy új táblára, az Navigate esemény létrejön. Az BackButtonClick esemény akkor jelenik meg, amikor a felhasználó a vissza gombra kattint, amikor a felhasználó megtekint egy gyermektáblát, és az ShowParentDetailsButtonClick esemény akkor jön létre, amikor a szülősorok megjelenítése/elrejtése ikonra kattint.
Lásd még
- Adatrács vezérlő
- Útmutató: A Windows Forms DataGrid-vezérlő összekapcsolása egy adatforráshoz
- Útmutató: Táblák és oszlopok hozzáadása a Windows Forms DataGrid control
- Útmutató arra, hogyan lehet oszlopokat törölni vagy elrejteni a Windows Forms DataGrid vezérlőben
- Útmutató: A Windows Forms DataGrid control formázása
.NET Desktop feedback