• Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   13-02-2016

      Prezados membros do Clube do Hardware,

      Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:
        Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas ao formulário abaixo:    Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Entre para seguir isso  
Seguidores 0
ramonlmf

VB selecionar 2 listview

2 posts neste tópico

Bom tenho duas listviews e gostaria que ao clicar em cada item de cada listview ficassem selecionas

Bom eu fiz isso com duas listbox


Private Sub Form_Load()
List1.AddItem "ddddddd"
List1.AddItem "aaaaaaaaaaa"
List2.AddItem "dddd"
List2.AddItem "ssssss"
End Sub

Private Sub List1_Click()
a = List1.ListIndex
List1.Selected(a) = True
End Sub

Gostari de fazer isso acima mas com duas listviews alguem poderia me ajudar com um exemplo? :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deixa ver se entendi: ao selecionar um item qualquer em um ListView, você quer que o item correspondente seja selecionado automaticamente em outro ListView, é isso?

Bom, o ListView é um tanto problemático para esse tipo de coisa. Não adianta tentar usar a propriedade "Index" do objeto "ListItem", assim não funciona.

Você precisa de algo que dispare o método "EnsureVisible" e a propriedade "Selected" do objeto "ListItem".

Você até poderia usar o evento "ItemClick" aproveitando o retorno do argumento "Item", mas o ListView tem um bug que impede que o método "EnsureVisible" e a propriedade "Selected" funcionem para outro ListView, à não ser o que disparou o evento. Isso faz o foco se manter no controle de origem do evento, o que anula o efeito que você quer.

Então o jeito é usar o evento "Click" conforme o exemplo abaixo.

Apenas coloque dois ListView num Form (não precisa renomear nem ajustar propriedades), e coloque o código abaixo:

Postado Originalmente por Exemplo ListView

Private Sub Form_Load()

    Dim ItemLista As ListItem

    With ListView1

        .ColumnHeaders.Add , , "Coluna 1", 2000, lvwColumnLeft

        .View = lvwReport

        Set ItemLista = .ListItems.Add(1, , "Banana")

        Set ItemLista = .ListItems.Add(2, , "Maçã")

        Set ItemLista = .ListItems.Add(3, , "Laranja")

        Set ItemLista = .ListItems.Add(4, , "Melancia")

        Set ItemLista = .ListItems.Add(5, , "Limão")

        Set ItemLista = .ListItems.Add(6, , "Tangerina")

        Set ItemLista = .ListItems.Add(7, , "Pêra")

        Set ItemLista = .ListItems.Add(8, , "Melão")

        Set ItemLista = .ListItems.Add(9, , "Mamão")

    End With

    With ListView2

        .ColumnHeaders.Add , , "Coluna 1", 2000, lvwColumnLeft

        .View = lvwReport

        Set ItemLista = .ListItems.Add(1, , "Banana")

        Set ItemLista = .ListItems.Add(2, , "Maçã")

        Set ItemLista = .ListItems.Add(3, , "Laranja")

        Set ItemLista = .ListItems.Add(4, , "Melancia")

        Set ItemLista = .ListItems.Add(5, , "Limão")

        Set ItemLista = .ListItems.Add(6, , "Tangerina")

        Set ItemLista = .ListItems.Add(7, , "Pêra")

        Set ItemLista = .ListItems.Add(8, , "Melão")

        Set ItemLista = .ListItems.Add(9, , "Mamão")

    End With

End Sub

Private Sub ListView1_Click()

    Dim ItemEncontrado As ListItem, Texto As String

   

    If Not ListView1.ListItems.Count = 0 Then

       

        If Not ListView1.SelectedItem Is Nothing Then Texto = ListView1.SelectedItem.Text

   

        If Not Texto = "" Then

            Set ItemEncontrado = ListView2.FindItem(Texto, lvwText, , lvwPartial)

   

            If Not (ItemEncontrado Is Nothing) Then

           

                Indice = ItemEncontrado.Index

   

                With ListView2

                    .ListItems(Indice).EnsureVisible

                    .ListItems(Indice).Selected = True

                    .SetFocus

                End With

           

            End If

   

        End If

   

    End If

End Sub

Note que eu usei o método "FindItem" para buscar por string: isso evita erros se por acaso o Index do Item for alterado, ou algum Item for deletado, etc...

Só fiz o exemplo do ListView da esquerda para o da direita, o resto é com você.

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!


Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.


Entrar agora
Entre para seguir isso  
Seguidores 0