Springen naar inhoud


- - - - -
VS 2015

Datagridview



  • Log in a.u.b. om te beantwoorden
Er zijn 4 reacties in dit onderwerp

#1 ldv

ldv

    Starting Developer

  • Leden
  • 2 berichten
    Laatst bezocht 23 mei 2020 16:34

Geplaatst op 30 april 2020 - 17:36

Hallo,
In mijn Datagridvew RelatieB staat een checkbox.
Als ik die aanvink zou de kleur van de rij moeten veranderen.
Dat gebeurt enkel als ik de volgende aanvink of in ander veld in de Datagrdview klik

Wat heb ik vergeten

Private Sub RelatieB_CellFormatting(sender As Object, e As DataGridViewCellFormattingEventArgs) Handles RelatieB.CellFormatting
        If e.ColumnIndex = 0 Then

            If e.Value = True Then

                RelatieB.Rows(e.RowIndex).DefaultCellStyle.BackColor = Color.Yellow

            End If

        End If

    End Sub

#2 Tatooine4691

Tatooine4691

    Starting Developer

  • Leden
  • 22 berichten
    Laatst bezocht vandaag, 21:14
  • LocatieNoord-Holland

Geplaatst op 30 april 2020 - 21:47

Hoi LDV,

Enige jaren terug heb ik ook met zoiets lopen stoeien.Wellicht kan onderstaande link je verder helpen.

http://www.vbib.be/i...l__datagridview

#3 Dirk Andries

Dirk Andries

    Guru Developer

  • Leden
  • PipPipPipPipPipPip
  • 1189 berichten
    Laatst bezocht
  • LocatieGent

Geplaatst op 01 mei 2020 - 16:10

Bericht bekijkenldv, op 30 april 2020 - 17:36, zei:

Hallo,
In mijn Datagridvew RelatieB staat een checkbox.
Als ik die aanvink zou de kleur van de rij moeten veranderen.
Dat gebeurt enkel als ik de volgende aanvink of in ander veld in de Datagrdview klik
Ik denk dat je in de foute event handler bezig bent.
Waarom niet b.v. in de CellDirtyStateChanged event handler?
Met een DataViewGrid met de naam Grid en met in checkBoxKolomIndex de index van je ChackBoxColumn:

Visual Basic Code:
   

	 Private Sub GridViewVelden_CurrentCellDirtyStateChanged(sender As Object, e As EventArgs) _
		Handles Grid.CurrentCellDirtyStateChanged

		If Grid.IsCurrentCellDirty AndAlso Grid.CurrentCell.ColumnIndex = checkBoxKolomIndex Then
			If Grid.IsCurrentCellInEditMode Then Grid.CommitEdit(DataGridViewDataErrorContexts.Commit)
			If DirectCast(Grid.CurrentCell.Value, Boolean) Then
				Grid.CurrentRow.DefaultCellStyle.BackColor = Color.Yellow
			Else
				Grid.CurrentRow.DefaultCellStyle.BackColor = Grid.DefaultCellStyle.BackColor
			End If
		End If

	End Sub
 


Deze eventhandler wordt tweemaal opgeroepen:
  • de eerste maal als je aanvinkt of afvinkt,
  • de tweede maal binnenin de eerste maal door de Commit
EndEdit had ook gekund in de plaats van Commit, met hetzelfde effect overigens (intuïtief voelt EndEdit voor mij ook beter aan).

#4 ldv

ldv

    Starting Developer

  • Leden
  • 2 berichten
    Laatst bezocht 23 mei 2020 16:34

Geplaatst op 02 mei 2020 - 13:54

Hallo,

Bedankt voor de snelle reactie.
Alles werkt precies zoals je geschreven hebt.

Kan ik ergens uitleg vinden over deze en andere events ?

Dit onderwerp mag afgesloten worden.
nogmaals bedankt.

#5 Dirk Andries

Dirk Andries

    Guru Developer

  • Leden
  • PipPipPipPipPipPip
  • 1189 berichten
    Laatst bezocht
  • LocatieGent

Geplaatst op 02 mei 2020 - 18:26

Bericht bekijkenldv, op 02 mei 2020 - 13:54, zei:

Kan ik ergens uitleg vinden over deze en andere events ?
Euh... in de officiële documentatie voor DataGridView, en dan Events in de linkerkolom openen.





Ook met taq VS 2015 voorzien

0 gebruiker(s) lezen dit onderwerp

0 lid(leden), 0 bezoeker(s), 0 anonieme gebruikers

Inloggen


[VS 2015] Untitled 1

Met dank aan Jürgen voor de jarenlange inzet van visualbasic.be (anno dec 2000)
Met dank aan Mike en Ronneke voor de jarenlange inzet van vbib.be (anno dec 2010)
Met dank aan PascalBianca voor de jarenlange inzet van vbib.be (anno dec 2016)