Jump to content
Bessa

ANSWERED Apagar Items de 3 ListBox

Recommended Posts

Bessa

Boas Pessoal! :)

Estava um pouco com o pé atrás para colocar esta dúvida...Mas segui em frente, dado que mesmo pesquisando em EN, não encontrei forma de o fazer e assim também poderá ajudar outro n00b (like me lol) com o mesmo problema.

- Tenho aqui 3 ListBox, e gostaria que ao seleccionar num registo (Que automaticamente selecciona os outros 2 das outras duas ListBox), ao carregar no botão eliminar, eliminasse o registo seleccionado nas 3 ListBox:

http://img1.imagilive.com/0511/1e70.JPG

No entanto, apenas consigo eliminar o registo da PRIMEIRA ListBox.

Utilizo este código:

        If Ferramentas_corte_selecListBox.SelectedIndex <> -1 Then
            Ferramentas_corte_selecListBox.Items.RemoveAt(Ferramentas_corte_selecListBox.SelectedIndex)

        Else
            MsgBox("Não existem mais registos para apagar!", MsgBoxStyle.Information, "Informação")
        End If
Ainda coloquei isto Antes do Else:

Comprimento_ferr_corteListBox.Items.RemoveAt(Comprimento_ferr_corteListBox.SelectedIndex)

Que era para a segunda ListBox, Mas deu este erro, ao clicar no botão de Eliminar... :)

InvalidArgument=Valor de '-1' inválido para 'index'. Nome do parâmetro: index

Alguém sabe a solução?

Estive a procurar no Fórum e na Wiki e não encontrei (Pelos termos que coloquei). E na Net, também não consegui para aquilo que queria...Só falavam em mover registos entre 2 List...agora remover...

Obrigado desde já.

Entretanto, continuo a procura.

Share this post


Link to post
Share on other sites
Caça

Para esse código funcionar, primeiro tens de apagar o item das outras duas lisboxes e só depois apagas na primeira.


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
Bessa

Comprimento_ferr_corteListBox.Items.RemoveAt(Comprimento_ferr_corteListBox.SelectedIndex)

Diametro_ferr_corteListBox.Items.RemoveAt(Diametro_ferr_corteListBox.SelectedIndex)

Então teria de colocar isto antes do If (Não?)...Coisa que mesmo assim não funciona.  🤔

Como só quero o Selecionado, Um For Each para cada item, também não me parece...

Tks

Share this post


Link to post
Share on other sites
Caça

Tipo isto

If Ferramentas_corte_selecListBox.SelectedIndex <> -1 Then
Comprimento_ferr_corteListBox.Items.RemoveAt(Ferramentas_corte_selecListBox.SelectedIndex)
Diametro_ferr_corteListBox.Items.RemoveAt(Ferramentas_corte_selecListBox.SelectedIndex)
Ferramentas_corte_selecListBox.Items.RemoveAt(Ferramentas_corte_selecListBox.SelectedIndex)
Else
MsgBox("Não existem mais registos para apagar!", MsgBoxStyle.Information, "Informação")
End If

Suponho que a Listbox principal seja a Ferramentas_corte_selecListBox


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
Bessa

Sim, é a principal.

Dessa forma dá o mesmo erro que em cima citei. :) Mas obrgd ;)

Incrível como uma coisa tão simples dá problemas! :wallbash:

Encontrei agora um Post de um gajo EN com o mesmo problema...Mas sem resposta. :)

Share this post


Link to post
Share on other sites
Andrepereira9

Dá maneira como o @Caça disse, não pode dar erro.


A informática chegou para resolver problemas que antes não existiam

Quem ri por último é porque está conectado a 52 Kbs.

Share this post


Link to post
Share on other sites
paulonunes

Estarás a fazer corretamente?

como o caça disse não dá erro

If ListBox1.SelectedIndex <> -1 Then
            ListBox2.Items.RemoveAt(ListBox1.SelectedIndex)
            ListBox3.Items.RemoveAt(ListBox1.SelectedIndex)
            ListBox1.Items.RemoveAt(ListBox1.SelectedIndex)
End If

O index que envias para ser removido nas outras duas ListBox é o da ListBox1 e não o delas. Será esse o teu problema?


"Aprende-se por tentativa e erro"

Share this post


Link to post
Share on other sites
Bessa

Mas estou a fazer isso, tal como o Caça disse, colegas:

http://img1.imagilive.com/0511/1246.JPG

Já experimentei trocar o "(ListBox1.SelectedIndex)" pelo nome da lista que quero remover, tipo:

ListBox2.Items.RemoveAt(ListBox2.SelectedIndex)

Mas dá o erro que no 1º Post disse. (Isto adaptado aos nomes do meu projeto)

Obrigado.

🤔

Share this post


Link to post
Share on other sites
Andrepereira9

Experimenta assim.

Dim aux as integer = Ferramentas_corte_selecListBox.SelectedIndex
If aux <> -1 Then
Comprimento_ferr_corteListBox.Items.RemoveAt(aux)
Diametro_ferr_corteListBox.Items.RemoveAt(aux)
Ferramentas_corte_selecListBox.Items.RemoveAt(aux)
Else
        MsgBox("Não existem mais registos para apagar!", MsgBoxStyle.Information, "Informação")
End If


A informática chegou para resolver problemas que antes não existiam

Quem ri por último é porque está conectado a 52 Kbs.

Share this post


Link to post
Share on other sites
Caça
Em 31/05/2011 às 17:11, Bessa disse:

Mas estou a fazer isso, tal como o Caça disse, colegas:

http://img1.imagilive.com/0511/1246.JPG

Já experimentei trocar o "(ListBox1.SelectedIndex)" pelo nome da lista que quero remover, tipo:

ListBox2.Items.RemoveAt(ListBox2.SelectedIndex)

Mas dá o erro que no 1º Post disse. (Isto adaptado aos nomes do meu projeto)

Obrigado.

🤔

Então a listbox Ferramentas_corte_selecListBox não pode ser a listbox principal


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
paulonunes

Posso ter entendido mal, mas parece-me que isso assim não funciona, senão vejamos

Se tiveres 3 registo na Ferramentas de Corte, selecionas a linha 3 (index 2 - por exemplo) ao passares para a Lisbox "As Selecionadas" passara a ser o Index 0...Se tentares remover com base no index da Ferramentas de Corte vai dar erro.

A não ser que tenha entendido mal...


"Aprende-se por tentativa e erro"

Share this post


Link to post
Share on other sites
Andrepereira9

Responde só a isto

http://img1.imagilive.com/0511/138dae1.JPG


A informática chegou para resolver problemas que antes não existiam

Quem ri por último é porque está conectado a 52 Kbs.

Share this post


Link to post
Share on other sites
Bessa

Como é que se chama esta ListBox?

ListBox1

E Esta:

Ferramentas_corte_selecListBox

Então entre os parênteses (), veria colocar assim, tal como o Caça disse:

Comprimento_ferr_corteListBox.Items.RemoveAt(Ferramentas_corte_selecListBox.SelectedIndex)

Mas estranhamente dá erro...

Já agora, o Código que sugeriste, apaga apenas a 1ª ListBox, isto é, a "Ferramentas_corte_selecListBox". (Tal como me acontecia na altura do 1º Post) :)

Obrigado por estarem a tentar ajudar. :)

Share this post


Link to post
Share on other sites
Andrepereira9

Dá maneira que eu sugeri, ele devia de dar, porque estou a guardar o valor do index numa variavel. Mesmo que apagues 1º a lista principal, o valor está guardado na varivael 'aux'

Dim aux as integer = Ferramentas_corte_selecListBox.SelectedIndex ' Guarda o index na variavel 'aux'
If aux <> -1 Then
Comprimento_ferr_corteListBox.Items.RemoveAt(aux) ' apaga o item de index correspondente ao aux
Diametro_ferr_corteListBox.Items.RemoveAt(aux)
Ferramentas_corte_selecListBox.Items.RemoveAt(aux)
Else
        MsgBox("Não existem mais registos para apagar!", MsgBoxStyle.Information, "Informação")
End If


A informática chegou para resolver problemas que antes não existiam

Quem ri por último é porque está conectado a 52 Kbs.

Share this post


Link to post
Share on other sites
Bessa

JÁ ESTÁ A FUNCIONAR!

:)

Ontem não estava porque devia estar a carregar no botão original de remover (Criei um outro Botão para fazer os testes)... :wallbash:

Hoje, já com a cabeça fresquinha e com os olhos de ver, testei outra vez e está a bombar! :P

Muito Obrigado por todas as ajudas aos colegas, e de forma mais especial ao Andrepereira9 por ter descoberto o meu problema. :)

Mais um Tópico SOLVED. :D

Para os que poderão ter este problema, SOLUÇÃO:

https://www.portugal-a-programar.pt/forums/topic/44279-apagar-items-de-3-listbox/?do=findComment&comment=392388

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.