Delen via


Selectiemodi in het Windows Forms DataGridView-controle

Soms wilt u dat uw toepassing acties uitvoert op basis van gebruikersselecties binnen een DataGridView besturingselement. Afhankelijk van de acties kunt u de soorten selectie beperken die mogelijk zijn. Stel dat uw toepassing een rapport voor de geselecteerde record kan afdrukken. In dit geval wilt u het DataGridView besturingselement configureren, zodat het klikken overal in een rij altijd de hele rij selecteert, en zodat slechts één rij tegelijkertijd kan worden geselecteerd.

U kunt de toegestane selecties opgeven door de eigenschap DataGridView.SelectionMode in te stellen op een van de volgende DataGridViewSelectionMode opsommingswaarden.

DataGridViewSelectionMode-waarde Beschrijving
CellSelect Als u op een cel klikt, wordt deze geselecteerd. Rij- en kolomkoppen kunnen niet worden gebruikt voor selectie.
ColumnHeaderSelect Als u op een cel klikt, wordt deze geselecteerd. Als u op een kolomkop klikt, wordt de hele kolom geselecteerd. Kolomkoppen kunnen niet worden gebruikt voor sorteren.
FullColumnSelect Als u op een cel of kolomkop klikt, wordt de hele kolom geselecteerd. Kolomkoppen kunnen niet worden gebruikt voor sorteren.
FullRowSelect Als u op een cel of rijkop klikt, wordt de hele rij geselecteerd.
RowHeaderSelect Standaardselectiemodus. Als u op een cel klikt, wordt deze geselecteerd. Als u op een rijkop klikt, wordt de hele rij geselecteerd.

Opmerking

Als u de selectiemodus tijdens runtime wijzigt, wordt de huidige selectie automatisch gewist.

Standaard kunnen gebruikers meerdere rijen, kolommen of cellen selecteren door met de muis te slepen, op Ctrl of Shift te drukken terwijl ze selecteren om een selectie uit te breiden of te wijzigen, of door op de cel in de linkerbovenhoek te klikken om alle cellen in het besturingselement te selecteren. Als u dit gedrag wilt voorkomen, stelt u de eigenschap MultiSelect in op false.

Met de modi FullRowSelect en RowHeaderSelect kunnen gebruikers rijen verwijderen door ze te selecteren en op delete te drukken. Gebruikers kunnen alleen rijen verwijderen wanneer de huidige cel zich niet in de bewerkingsmodus bevindt, de eigenschap AllowUserToDeleteRows is ingesteld op trueen de onderliggende gegevensbron ondersteunt het verwijderen van rijen op basis van de gebruiker. Houd er rekening mee dat deze instellingen het verwijderen van programmatische rijen niet verhinderen.

Programmatische selectie

De huidige selectiemodus beperkt het gedrag van programmatische selectie en gebruikersselectie. U kunt de huidige selectie programmatisch wijzigen door de eigenschap Selected van cellen, rijen of kolommen in te stellen die aanwezig zijn in het besturingselement DataGridView. U kunt ook alle cellen in het besturingselement selecteren via de methode SelectAll, afhankelijk van de selectiemodus. Als u de selectie wilt wissen, gebruikt u de methode ClearSelection.

Als de eigenschap MultiSelect is ingesteld op true, kunt u DataGridView elementen toevoegen aan of verwijderen uit de selectie door de eigenschap Selected van het element te wijzigen. Anders worden andere elementen automatisch uit de selectie verwijderd door de eigenschap Selected in te stellen op true voor één element.

Houd er rekening mee dat het wijzigen van de waarde van de eigenschap CurrentCell de huidige selectie niet wijzigt.

U kunt een verzameling van de geselecteerde cellen, rijen of kolommen ophalen via de SelectedCells, SelectedRowsen SelectedColumns eigenschappen van het besturingselement DataGridView. Het benaderen van deze eigenschappen is niet efficiënt wanneer elke cel in het besturingspaneel is geselecteerd. Als u in dit geval een prestatiestraf wilt voorkomen, gebruikt u eerst de methode AreAllCellsSelected. Daarnaast kunnen de toegang tot deze verzamelingen om het aantal geselecteerde cellen, rijen of kolommen te bepalen inefficiënt zijn. In plaats daarvan moet u de methode GetCellCount, GetRowCountof GetColumnCount gebruiken om de Selected waarde door te geven.

Aanbeveling

Voorbeeldcode die het programmatische gebruik van geselecteerde cellen laat zien, vindt u in het overzicht van de DataGridView klasse.

Zie ook