Notifications
Clear all

Selecionar linhas em duas listview.

7 Posts
3 Usuários
0 Reactions
1,288 Visualizações
(@bracinho)
Posts: 0
New Member
Topic starter
 

Olá galera, bom dia!

É o seguinte, em uma userform eu tenho duas listview, uma ao lado da outra. Eu preferi explicar a minha demanda através de foto. Vejam abaixo:

Aguardo retorno.

 
Postado : 08/09/2015 5:54 am
(@issamu)
Posts: 0
New Member
 

Experimente adaptar o código abaixo:

Private Sub ListView1_Click()
Dim x As Long
For x = 1 To ListView2.ListItems.Count
    If ListView2.ListItems(x).Text = ListView1.SelectedItem.Text Then
        Set ListView2.SelectedItem = ListView2.ListItems(x)
        ListView2.HideSelection = False
        Exit Sub
    End If
Next x
End Sub

Pelo meus testes, não consegui deixar as duas seleções em azul, mas com a propriedade hideselection = False o listview2 fica selecionado em cinza claro.

 
Postado : 08/09/2015 7:34 am
(@bracinho)
Posts: 0
New Member
Topic starter
 

Funcionou, mas, ao clicar na listview1, a linha selecionada fica destacada de azul e a linha selecionada da listview2 fica cinza.

Como faço para ambas ficarem com as linhas azuis?

 
Postado : 08/09/2015 8:14 am
(@issamu)
Posts: 0
New Member
 

Eu não consegui deixar ambas azuis, conforme falei. Vou pesquisar mais e se achar alguma alternativa volto a postar.
Abs!

 
Postado : 08/09/2015 9:10 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Funcionou, mas, ao clicar na listview1, a linha selecionada fica destacada de azul e a linha selecionada da listview2 fica cinza.

Como faço para ambas ficarem com as linhas azuis?

Eu tambem não tenho certeza se é possível desta forma devido ao FOCO, qualquer outro controle que selecionar será tirado o foco, mesmo utilizando ".SetFocus=True".

Não sei como está preenchendo os dois listview e não sei se irá usar a informação do segundo listvews e se é possivel, mas quanto a questão de destacar a linha do segundo, fiz um exemplo onde formatamos a linha deste com fonte em negrito, dá para ajustar e deixar colorida tambem.

Veja se ajuda.
Destacar seleçaõ do primeiro ListView no Segundo Listview

[]a

 
Postado : 09/09/2015 9:08 am
(@bracinho)
Posts: 0
New Member
Topic starter
 

Mauro, o fato da linha da segunda listview ter ficado em negrito, já me satisfez.

A pergunta agora é:

Eu quero que isso aconteça em duas listview, porém uma na page1 e a outra na page2. Vale ressaltar que as listview são carregadas apenas quando a page é selecionada.

Exemplo:

If Me.MultiPage1.Value = 0 Then

'oculta as listview das demais page's, com o intuito de não alterar a posição das listview's.

Me.lsLista.Visible = True
Me.ListView10.Visible = True
Me.ListView8.Visible = False
Me.ListView3.Visible = False
Me.ListView1.Visible = False
Me.ListView9.Visible = False
Me.ListView4.Visible = False
Me.ListView5.Visible = False
Me.ListView6.Visible = False
Me.ListView7.Visible = False

'aqui apagará os dados da listview e carregá-los novamente.

Call PRIMEIRA

Call TamanhoColAutomatico10

Exit Sub
End If

 
Postado : 09/09/2015 10:09 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Eu quero que isso aconteça em duas listview, porém uma na page1 e a outra na page2.

Agora fiquei em duvida, se você tem uma ListView em cada pagina de um controle "MultiPage", supondo que temos um controle "MultiPage1" com duas "Pages": "Page1" e "Page2" e tiver um Listview em cada uma, a Rotina que o Issamu passou serve perfeitamente e ainda deixa as linhas destacadas em azul.

Quanto ao carregamento co ListView, perguntei porque os dois listview têm de ser carregados iguais, uma vez que a rotina seleciona no segundo pelo indice da linha e não por comparação do Item selecionado, mas se os dois listview estiverem na mesma Page não tem de alterar nada na rotina, e para as outras Pages é só ajustar os nomes do listview na rotina e adicionar em cada Page.

Pelo que postou
Detalhe melhor, e se possivel anexe um modelo reduzido e compactado de acordo com as regras do forum.

[]s

 
Postado : 09/09/2015 10:43 am