SELECAO DE LISTVIEW VIA CODIGO

LIZANDER 17/02/2010 13:08:31
#334576
Caros Colegas...

Há pouco tempo atrás me vi com um problema com o CommonDialogBox, que resolvi com uma solução [Ô]caseira[Ô] usando um listview com ícones de um ImageList.

O problema agora é outro:
Quando entro no form, não há impressoras selecionadas, então se o usuário não selecionar, o sistema não vai setar nenhuma impressora e a mesma vai ser impressa na que estiver padrão do windows. Então:

Como posso, via código, efetuar um ItemClick de um listview?
Existe um argumento que não consigo fornecer (ByVal Item As MSComctlLib.ListItem)...
No evento ItemClick do meu listview eu associo o item selecionado (nome da impressora) para ser ativado como o destino do relatório...

Por favor... me dêem uma luz!

Desde já agradeço!

FFCOUTO 17/02/2010 13:48:49
#334582
Resposta escolhida
você pode chamar esse evento de forma simples

Call ListView1_ItemClick(ListView1.ListItems(1))


ou o item que você desejar. No exemplo o item a ser marcado é o 1º item.

outra forma também é

ListView1.ListItems(1).Selected = True


LIZANDER 17/02/2010 13:54:14
#334583
é Fcouto...

Ele seleciona sim, via Programa (analisando as variáveis)...

Mas visualmente, não aparece nenhuma impressora selecionada (marcada)...

Não resolveu muito o meu problema, pois achei que o primeiro item (no caso do exemplo), ficasse marcado (selecionado) visualmente.
LIZANDER 18/02/2010 10:41:08
#334665
Consegui, colegas... ao invés de selecionar o mesmo, usei a dica do FFCouto para [Ô]selecionar[Ô] o que já vinha pré-selecionado no foco do listview.. ficou assim:

For Each prnDef In Printers
Set Item = lstPrinter.ListItems.Add(, , prnDef.DeviceName, 1, 1)
Next

For nItem = 1 To lstPrinter.ListItems.Count
If lstPrinter.ListItems.Item(nItem).Selected Then
Call lstPrinter_ItemClick(lstPrinter.ListItems(nItem))
Exit For
End If
Next

Pode parecer besteira, mas o item pré-selecionado no foco não era o mesmo que estava sendo enviado para impressão, então, na sub ItemClick do listview (lstPrinter) eu ativo a impressora selecionada no listview para a impressão... funcionou 100% e acabou o problema que eu tinha ao usar o ShowPrinter do CommonDialogBox..

Obrigado ao FFCOUTO, crédito para ele na resposta.
Tópico Encerrado.
Tópico encerrado , respostas não são mais permitidas