DATAGRIDVIEW COM CHECKBOX SELECIONAR LINHA INTERIA

ROBERTOSOUZA 09/09/2017 12:12:21
#476402
Pessoal estou com uma coluna DataGridViewCheckBoxColumn, e quero selecionar o Ckeckbox e marcar a linha toda como esta na linha 3 na imagem, ir marcando os checkboxs e ir selecionando.


Se que FullRowSelect é referente a isso mas o código abaixo nada acontece:

Dim CheckboxColumnIndex As Integer = 0
For i As Integer = 0 To dgvDados.RowCount - 1
If CBool(dgvDados.Rows(i).Cells(0).Value) = True Then
dgvDados.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect
[ô] MsgBox([Ô]checked[Ô])
Else
MsgBox([Ô]not checked[Ô])
End If
Next

Obrigado.
KERPLUNK 09/09/2017 13:29:40
#476403
SelectionMode é propriedade do Grid e não da linha. Você pode setar essa propriedade como FullRowSelect na inicialização do form.
ROBERTOSOUZA 09/09/2017 19:05:16
#476407
KerpLunk, funcionou colocar no Form1_Load (dgvDados.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect) mas agora quando marco outro checkbox ele apaga a linha marcada (selecionada) e seleciona a atual, gostaria que continua-se marcada (selecionada) a anterior .
DS2T 09/09/2017 21:10:55
#476408
Boa noite!

Tenha certeza que a propriedade MultiSelect do grid esteja como True.

Agora, no evento de check da coluna, você precisa apenas indicar a linha marcada como selecionada.

Repare que apenas marcar o check não vai indicar que ela foi selecionada permanentemente. Você precisa explicitar via código indicando que ela faz parte das linhas selecionadas.
ROBERTOSOUZA 09/09/2017 23:34:32
#476409
Boa Noite, sim a propriedade do MultiSelect está como True, o código abaixo está funcionando para marcar, o problema está agora no desmarcar a seleção.

Dim CheckboxColumnIndex As Integer = 0
For i As Integer = 0 To dgvDados.RowCount - 1
If CBool(dgvDados.Rows(i).Cells(0).Value) = True Then
dgvDados.Rows(i).Selected = True
Else
dgvDados.Rows(i).Selected = False

End If
Next
Tópico encerrado , respostas não são mais permitidas