Jump to content
Fórum Script Brasil
  • 0

Validar Itens Em Listbox Com Propriedade Style Em Checkbox


Tiago  José

Question

Olá pessoal, preciso de ajuda

Eu criei um LisBox, com a propriedade style em Checkbox, só que eu gostaria de usar individualmente cada linha do list, e não o list como um todo. Por exemplo, eu gostaria de ativar/desativar individualmente cada linha do ListBox, que tem mais ou menos 100 registros. Eu estava tentando usar variáveis, a cada click no list o sistema enviava uma variável, só que isso funcionava para todo o list, e não apenas para o item que eu selecionei!!!

Agradeço desde já

Até mais

Link to comment
Share on other sites

10 answers to this question

Recommended Posts

  • 0

então, pra saber qual ta checado ou não, assim como pra deschecar todos, é so percorrer com um For todos os elementos do ListBox. ai pela propriedade Selected do ListBox, você sabe se ta checado ou não. tipo assim:

Dim i As Integer
    
    With List1
        For i = 0 To .ListCount - 1
            If .Selected(i) Then
                MsgBox "O item " & Chr(34) & .List(i) & Chr(34) & " está selecionado!"
            End If
        Next
    End With[/code] ai pra deschecar é so fazer:
[code]List1.Selected(indice) = False

Link to comment
Share on other sites

  • 0

não entendi direito, mas acho q seria tipo isso aqui, não??

Dim i As Integer
    
    With List1
        For i = 0 To .ListCount - 1
            If .Selected(i) Then
                List2.AddItem .List(i)
            End If
        Next
    End With[/code]

Link to comment
Share on other sites

  • 0

Valeu Kuori, mas o problema não é bem esse

O fato é que o código funcionou. Quando eu marco uma informação no listBox1, ela realmente vai para o listBox2, mas se eu desmarcar, a informação vai mais uma vez para o listBox2, e fica repetida, se eu clicar 10 vezes, marcando e desmarcando no listBox1, aparecerão 10 informações iguais no listBox2. Esse código está funcionando para o ato de selecionar, e não de validar o ckeckBox. Não consigo resolver esse problema.

Se puder me ajudar novamente, agradeceria muito

Muito Obrigado
Link to comment
Share on other sites

  • 0

você quer q seja no clique do ListBox?? se for faca no evento ItemCheck do ListBox. no parametro Item do evento, vem o numero do indice do item q ele clicou. ai você ve, se o Selected estiver True, você adiciona ele no outro ListBox. se tiver False, você faz um For no outro ListBox, e procura qual é, no segundo ListBox, o indice do item clicado no primeiro. ai você remove o item do segundo.

seria isso??

Link to comment
Share on other sites

  • 0

Olá Kuori, Muito obrigado.

é exatamente isso que você entendeu.

Aqui está o código que eu fiz, só que eu não entendi muito bem, como eu desmarco através do For. Aqui está o código que eu fiz, só que apresenta erro 13

Dim i As Integer

With ListaPorModelo

For i = 0 To .ListCount - 1

If .Selected(i) = True Then

list2.AddItem .List(i)

Else

list2.RemoveItem .List(i)

End If

Next

End With

Poderia me explicar como aplicar o for no código acima...

Muito obrigado
Link to comment
Share on other sites

  • 0

ó, acho q é pra ser tipo assim o q você quer:

Private Sub List1_ItemCheck(Item As Integer)
    Dim i As Integer

    If List1.Selected(Item) Then
        List2.AddItem List1.List(Item)
    Else
        For i = 0 To List2.ListCount - 1
            If List2.List(i) = List1.List(Item) Then
                List2.RemoveItem i
                Exit For
            End If
        Next
    End If
End Sub[/code]

Link to comment
Share on other sites

  • 0

você usa o For porque você não sabe qual é o indice do item q você quer excluir, você teria q excluir pelo texto dele.

porque, por exemplo, o cara clica no segundo indice do primeiro listbox. como eu sei qual a localizacao dele no segundo listbox?? eu não sei qual é, por isso eu procuro pelo texto (propriedade List(index)). quando eu achar eu excluo.

deu pra entender??

a e é bom eu avisar tb esse codigo não vai funcionar direito caso você tenha dois items com o mesmo nome dentro do ListBox.

normalmente não tem sentido por duas vezes a mesma opcao no ListBox, mas se esse for o seu caso, da um toque q a gente da um jeito aqui.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152k
    • Total Posts
      651.6k
×
×
  • Create New...