Try changing the
.item(2,A).value=0
to
.item(2,A).value<>0
0 usually means false so you are checking if the item isn't checked
(Assuming .item(2,A) gets the checked state of the datagrid row)
Public Sub TestThis()
Dim A1 As Integer = dtg1.RowCount - 2
Dim A As Integer
With dtg1
For A = 0 To A1
If .Item(2, A).Value <> 0 Then
If .Item(0, A).Value.ToString <> "" Then
ListBox1.Items.Add(.Item(0, A).Value.ToString)
End If
End If
Next
End With
End Sub