Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
DataGridView rijen, kolommen en kopteksten kunnen van grootte veranderen als gevolg van veel verschillende gebeurtenissen. In de volgende tabel ziet u deze voorkomens.
| Gebeurtenis | Beschrijving |
|---|---|
| De grootte van een gebruikersinterface-element wijzigen | Gebruikers kunnen de grootte aanpassen door rij-, kolom- of koptextscheidingen te slepen of erop te dubbelklikken. |
| Grootte beheren | In de kolomvullingsmodus veranderen kolombreedten wanneer de breedte van het besturingselement verandert; Wanneer het besturingselement bijvoorbeeld is gekoppeld aan het bovenliggende formulier en de gebruiker het formaat van het formulier wijzigt. |
| Wijziging van celwaarde | In de modus voor automatische groottes op basis van inhoud worden de grootten aangepast aan nieuwe weergavewaarden. |
| Methode-aanroep | Met programmatische, op inhoud gebaseerde aanpassing van de grootte kunt u opportunistisch de grootte aanpassen op basis van celwaarden op het moment van de methode-aanroep. |
| Instelling van eigenschappen | U kunt ook specifieke waarden voor hoogte en breedte instellen. |
Het wijzigen van de grootte door gebruikers is standaard ingeschakeld, automatisch aanpassen is uitgeschakeld en celwaarden die breder zijn dan hun kolommen worden afgekapt.
In de volgende tabel ziet u scenario's die u kunt gebruiken om het standaardgedrag aan te passen of om specifieke grootteopties te gebruiken om bepaalde effecten te bereiken.
| Scenariobeschrijving | Implementatie |
|---|---|
| Gebruik de kolomvullingsmodus voor het weergeven van gegevens met een vergelijkbare grootte in een relatief klein aantal kolommen die de volledige breedte van het besturingselement innemen zonder de horizontale schuifbalk weer te geven. | Stel de eigenschap AutoSizeColumnsMode in op Fill. |
| Gebruik de opvulmodus voor kolommen met weergavewaarden van verschillende grootten. | Stel de eigenschap AutoSizeColumnsMode in op Fill. Initialiseer relatieve kolombreedten door de kolomeigenschappen FillWeight in te stellen of door de methode van het besturingselement AutoResizeColumns aan te roepen nadat het besturingselement met data is gevuld. |
| Gebruik de opvulmodus voor kolommen met waarden van verschillende belangrijkheid. | Stel de eigenschap AutoSizeColumnsMode in op Fill. Stel grote MinimumWidth waarden in voor kolommen die altijd een deel van hun gegevens moeten weergeven of een andere grootteoptie moeten gebruiken dan de opvulmodus voor specifieke kolommen. |
| Gebruik de kolomvulmodus om te voorkomen dat de achtergrond van de besturing wordt weergegeven. | Stel de eigenschap AutoSizeMode van de laatste kolom in op Fill en gebruik andere grootteopties voor de andere kolommen. Als de andere kolommen te veel van de beschikbare ruimte gebruiken, stelt u de eigenschap MinimumWidth van de laatste kolom in. |
| Een kolom met vaste breedte weergeven, zoals een pictogram of id-kolom. | Stel AutoSizeMode in op None en Resizable op False voor de kolom. Initialiseer de breedte door eigenschap Width in te stellen of door de methode AutoResizeColumn van de controle aan te roepen nadat de controle met gegevens is gevuld. |
| Pas de grootte automatisch aan wanneer de celinhoud verandert om afsnijding te voorkomen en het gebruik van ruimte te optimaliseren. | Stel een eigenschap voor automatische grootte in op een waarde die de groottemodus op basis van inhoud vertegenwoordigt. Als u prestatiestraf wilt voorkomen bij het werken met grote hoeveelheden gegevens, gebruikt u een groottemodus waarmee alleen weergegeven rijen worden berekend. |
| Pas de grootten aan zodat deze passen bij waarden in weergegeven rijen om prestatiestraffen te voorkomen wanneer u met veel rijen werkt. | Gebruik de juiste opsommingswaarden voor formaatmodus bij automatisch of programmeerbaar wijzigen. Als u de grootten wilt aanpassen aan waarden in nieuw weergegeven rijen tijdens het schuiven, roept u een formaatmethode aan in een Scroll gebeurtenis-handler. Om het wijzigen door de gebruiker aan te passen, zodat alleen waarden in weergegeven rijen de nieuwe groottes bepalen, roept u een wijzingsmethode aan in een RowDividerDoubleClick of ColumnDividerDoubleClick event handler. |
| Pas de afmetingen aan zodat ze alleen op specifieke momenten bij de inhoud van cellen passen, om prestatieverlies te voorkomen of om gebruikersinstellingen voor het formaat in te schakelen. | Roep een inhoud-gebaseerde formaataanpassingsmethode aan in een event handler. Gebruik bijvoorbeeld het DataBindingComplete-event om de afmetingen na binding te initialiseren en het CellValidated- of CellValueChanged-event te verwerken om de afmetingen aan te passen voor aanpassingen door de gebruiker of veranderingen in een gebonden gegevensbron te compenseren. |
| Rijhoogten aanpassen voor inhoud van cellen met meerdere regels. | Zorg ervoor dat kolombreedtes geschikt zijn voor het weergeven van alinea's met tekst en gebruik automatische of programmatische rijhoogte op basis van de inhoud om de hoogten aan te passen. Zorg er ook voor dat cellen met inhoud met meerdere regels worden weergegeven met behulp van een WrapMode celstijlwaarde van True. Normaal gesproken gebruikt u een modus voor automatische kolomgrootte om kolombreedten te behouden of deze in te stellen op specifieke breedten voordat rijhoogten worden aangepast. |
Formaat wijzigen met de muis
Standaard kunnen gebruikers het formaat van rijen, kolommen en kopteksten wijzigen die geen automatische formaatmodus gebruiken op basis van celwaarden. Als u wilt voorkomen dat gebruikers het formaat wijzigen met andere modi, zoals de kolomopvullingsmodus, stelt u een of meer van de volgende DataGridView eigenschappen in:
U kunt ook voorkomen dat gebruikers het formaat van afzonderlijke rijen of kolommen wijzigen door hun Resizable eigenschappen in te stellen. De eigenschapswaarde Resizable is standaard gebaseerd op de eigenschapswaarde AllowUserToResizeColumns voor kolommen en de AllowUserToResizeRows eigenschapswaarde voor rijen. Als u Resizable expliciet instelt op True of False, overschrijft de opgegeven waarde echter de besturingswaarde voor die rij of kolom. Stel Resizable in op NotSet om de overname te herstellen.
Omdat NotSet de overname van de waarde herstelt, retourneert de eigenschap Resizable nooit een NotSet waarde, tenzij de rij of kolom niet is toegevoegd aan een DataGridView besturingselement. Als u wilt bepalen of de Resizable eigenschapswaarde van een rij of kolom wordt overgenomen, bekijkt u de State eigenschap. Als de State-waarde de vlag ResizableSet bevat, wordt de Resizable eigenschapswaarde niet overgenomen.
Automatische groottebepaling
Er zijn twee soorten automatische groottes in het DataGridView besturingselement: de kolomvullingsmodus en de automatische grootte op basis van inhoud.
De kolomvulmodus zorgt ervoor dat de zichtbare kolommen in het besturingselement de breedte van het weergavegebied van het besturingselement vullen. Zie Kolomopvullingsmodus in het besturingselement Windows Forms DataGridViewvoor meer informatie over deze modus.
U kunt ook rijen, kolommen en kopteksten zo configureren dat de grootte automatisch wordt aangepast aan de inhoud van de cel. In dit geval wordt de grootte aangepast wanneer de inhoud van de cel verandert.
Opmerking
Als u celwaarden in een aangepaste gegevenscache onderhoudt met behulp van de virtuele modus, wordt de grootte automatisch aangepast wanneer de gebruiker een celwaarde bewerkt, maar vindt dat niet plaats wanneer u een waarde in de cache wijzigt buiten een CellValuePushed gebeurtenis-handler. Roep in dit geval de UpdateCellValue methode aan om het besturingselement af te dwingen de weergave van de cel bij te werken en de huidige automatische groottemodi toe te passen.
Als op inhoud gebaseerde automatische grootte alleen is ingeschakeld voor één dimensie, dat wil gezegd, voor rijen maar niet voor kolommen of voor kolommen, maar niet voor rijen, en WrapMode ook is ingeschakeld, vindt ook de grootteaanpassing plaats wanneer de andere dimensie verandert. Als bijvoorbeeld rijen maar geen kolommen zijn geconfigureerd voor automatische grootte en WrapMode is ingeschakeld, kunnen gebruikers kolomscheidingstekens slepen om de breedte van een kolom en rijhoogte te wijzigen, zodat de celinhoud nog steeds volledig wordt weergegeven.
Als u zowel rijen als kolommen configureert voor het automatisch aanpassen van de grootte op basis van inhoud en WrapMode is ingeschakeld, wordt met het besturingselement DataGridView de grootte aangepast wanneer de inhoud van de cel wordt gewijzigd en wordt een ideale verhouding tussen celhoogte en breedte gebruikt bij het berekenen van nieuwe grootten.
Als u de groottemodus wilt configureren voor kopteksten en rijen en voor kolommen die de waarde van het besturingselement niet overschrijven, stelt u een of meer van de volgende DataGridView eigenschappen in:
Als u de kolomgroottemodus van het besturingselement voor een afzonderlijke kolom wilt overschrijven, stelt u de eigenschap AutoSizeMode ervan in op een andere waarde dan NotSet. De groottemodus voor een kolom wordt in feite bepaald door de eigenschap InheritedAutoSizeMode. De waarde van deze eigenschap is gebaseerd op de eigenschapswaarde van de kolom AutoSizeMode, tenzij die waarde NotSetis, in welk geval de AutoSizeColumnsMode waarde van het besturingselement wordt overgenomen.
Gebruik inhoudsgebaseerde automatische aanpassing met voorzichtigheid wanneer u met grote hoeveelheden data werkt. Als u prestatiestraffen wilt voorkomen, gebruikt u de automatische groottemodi waarmee alleen de grootten worden berekend op basis van de weergegeven rijen in plaats van elke rij in het besturingselement te analyseren. Voor maximale prestaties gebruikt u in plaats daarvan programmatisch wijzigen, zodat u het formaat op bepaalde momenten kunt wijzigen, bijvoorbeeld direct nadat nieuwe gegevens zijn geladen.
Automatische groottemodi op basis van inhoud hebben geen invloed op rijen, kolommen of koppen die u hebt verborgen door de eigenschap rij of kolom in te stellen Visible of de eigenschappen van het besturingselement RowHeadersVisible of ColumnHeadersVisible op false. Als een kolom bijvoorbeeld wordt verborgen nadat deze automatisch is aangepast aan een grote celwaarde, wordt de grootte van de verborgen kolom niet gewijzigd als de rij met de grote celwaarde wordt verwijderd. Automatische grootte treedt niet op wanneer de zichtbaarheid verandert. Als u de eigenschap kolom Visible wijzigt in true wordt de grootte niet opnieuw berekend op basis van de huidige inhoud.
Het wijzigen van het formaat op basis van programmatische inhoud is van invloed op rijen, kolommen en kopteksten, ongeacht hun zichtbaarheid.
Programmatische aanpassing van de grootte
Wanneer automatische grootte is uitgeschakeld, kunt u programmatisch de exacte breedte of hoogte van rijen, kolommen of kopteksten instellen via de volgende eigenschappen:
U kunt ook programmatisch het formaat van rijen, kolommen en koppen aanpassen aan de inhoud met behulp van de volgende methoden:
Met deze methoden wordt het formaat van rijen, kolommen of kopteksten eenmaal aangepast in plaats van ze te configureren voor continue grootte. De nieuwe grootten worden automatisch berekend om alle celinhoud weer te geven zonder knipsel. Wanneer u het formaat van kolommen met InheritedAutoSizeMode eigenschapswaarden van Fillprogrammatisch wijzigt, worden de berekende breedten op basis van inhoud echter gebruikt om de kolom FillWeight eigenschapswaarden proportioneel aan te passen en worden de kolombreedten vervolgens berekend op basis van deze nieuwe verhoudingen, zodat alle kolommen het beschikbare weergavegebied van het besturingselement vullen.
Programmatische aanpassing is nuttig om prestatieverlies te voorkomen bij het continu aanpassen van de grootte. Het is ook handig om initiële grootten te bieden voor door de gebruiker aanpasbare rijen, kolommen en koppen, en voor de opvulmodus voor kolommen.
Doorgaans roept u de programmatische methoden voor formaatwijziging op specifieke momenten aan. U kunt bijvoorbeeld het formaat van alle kolommen programmatisch wijzigen direct na het laden van gegevens, of u kunt programmatisch de grootte van een specifieke rij wijzigen nadat een bepaalde celwaarde is gewijzigd.
Aanpassen van het gedrag van het aanpassen van de grootte op basis van inhoud
U kunt het gedrag van de grootte aanpassen wanneer u werkt met afgeleide DataGridView cel-, rij- en kolomtypen door de DataGridViewCell.GetPreferredSize, DataGridViewRow.GetPreferredHeightof DataGridViewColumn.GetPreferredWidth methoden te overschrijven of door overbelasting van beveiligde groottemethodes aan te roepen in een afgeleid DataGridView besturingselement. De overladen beveiligde resize-methodes zijn ontworpen om als paar te werken om een ideale verhouding tussen celhoogte en -breedte te realiseren, waardoor te brede of te hoge cellen worden vermeden. Als u bijvoorbeeld de AutoResizeRows(DataGridViewAutoSizeRowsMode,Boolean) overbelasting van de AutoResizeRows methode aanroept en een waarde van false doorgeeft voor de parameter Boolean, berekent de overbelasting de ideale hoogten en breedten voor cellen in de rij, maar worden alleen de rijhoogten aangepast. Vervolgens moet u de methode AutoResizeColumns aanroepen om de kolombreedten aan te passen aan het berekende ideaal.
Opties voor het aanpassen van grootten op basis van inhoud
De opsommingen die worden gebruikt bij de grootteaanpassing van eigenschappen en methoden hebben vergelijkbare waarden voor groottebepaling op basis van inhoud. Met deze waarden kunt u beperken welke cellen worden gebruikt om de gewenste grootten te berekenen. Voor alle opsommingen van grootten beperken waarden met namen die verwijzen naar weergegeven cellen hun berekeningen tot cellen in weergegeven rijen. Het uitsluiten van rijen is handig om prestatiestraf te voorkomen wanneer u met een grote hoeveelheid rijen werkt. U kunt berekeningen ook beperken tot celwaarden in kop- of niet-koptekstcellen.
Zie ook
- DataGridView
- DataGridView.AllowUserToResizeColumns
- DataGridView.AllowUserToResizeRows
- DataGridView.ColumnHeadersHeightSizeMode
- DataGridView.RowHeadersWidthSizeMode
- DataGridViewBand.Resizable
- DataGridView.AutoSizeColumnsMode
- DataGridView.AutoSizeRowsMode
- DataGridViewColumn.AutoSizeMode
- DataGridViewColumn.InheritedAutoSizeMode
- DataGridView.RowHeadersWidth
- DataGridView.ColumnHeadersHeight
- DataGridViewRow.Height
- DataGridViewColumn.Width
- DataGridView.AutoResizeColumn
- DataGridView.AutoResizeColumns
- DataGridView.AutoResizeColumnHeadersHeight
- DataGridView.AutoResizeRow
- DataGridView.AutoResizeRows
- DataGridView.AutoResizeRowHeadersWidth
- DataGridViewAutoSizeRowMode
- DataGridViewAutoSizeRowsMode
- DataGridViewAutoSizeColumnMode
- DataGridViewAutoSizeColumnsMode
- DataGridViewColumnHeadersHeightSizeMode
- DataGridViewRowHeadersWidthSizeMode
- Het formaat van kolommen en rijen wijzigen in de Windows Forms DataGridView Control
- De modus voor kolomvulling in het Windows Forms DataGridView-besturingselement
- Instructies: De groottemodi van het Besturingselement Windows Forms DataGridView instellen
.NET Desktop feedback