Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
PMSF

Checkbox a seleccionar todos os elementos da listbox

Recommended Posts

PMSF

boa tarde;

tenho uma form com uma listbox e uma checkbox

na listbox adicionei alguns itens. A função da checkbox é ao seleccioná-la ela também selecciona todos os itens da listbox; e ao tirar o check que ela limpe as selecções feitas na listbox.

ela faz isso; o meu problema é que quando "checkamos" ou "deschekamos" em vez de aparecer o nome dos itens colocados aparece -1 ou 0 conforme a sitação.

Podem me ajudar?!

cumprimentos,

Pedro

o meu código é o seguinte:

Private Function todosselect()
CbFirma.List(0) = True
CbFirma.List(1) = True
CbFirma.List(2) = True
CbFirma.List(3) = True
CbFirma.List(4) = True
CbFirma.List(5) = True
CbFirma.List(6) = True
CbFirma.List(7) = True
CbFirma.List(8) = True
CbFirma.List(9) = True
CbFirma.List(10) = True
CbFirma.List(11) = True
CbFirma.List(12) = True
CbFirma.List(13) = True
CbFirma.List(14) = True
CbFirma.List(15) = True
CbFirma.List(16) = True
CbFirma.List(17) = True
End Function

Private Function nenhumselect()
CbFirma.List(0) = False
CbFirma.List(1) = False
CbFirma.List(2) = False
CbFirma.List(3) = False
CbFirma.List(4) = False
CbFirma.List(5) = False
CbFirma.List(6) = False
CbFirma.List(7) = False
CbFirma.List(8) = False
CbFirma.List(9) = False
CbFirma.List(10) = False
CbFirma.List(11) = False
CbFirma.List(12) = False
CbFirma.List(13) = False
CbFirma.List(14) = False
CbFirma.List(15) = False
CbFirma.List(16) = False
CbFirma.List(17) = False
End Function
Private Sub CBtodos_Click()
If CBtodos = True Then todosselect Else
If CBtodos = False Then nenhumselect
End Sub

Private Sub UserForm_Initialize()
'ListBox CbFirma
CbFirma.AddItem "Gabriel"
CbFirma.AddItem "Lidia"
CbFirma.AddItem "Pedro"
CbFirma.AddItem "Rute"
CbFirma.AddItem "Natercia"
CbFirma.AddItem "Ambrosio"
CbFirma.AddItem "Filipe"
CbFirma.AddItem "José"
CbFirma.AddItem "Sara"
CbFirma.AddItem "Catarina"
CbFirma.AddItem "Tiago"
CbFirma.AddItem "Sofia"
CbFirma.AddItem "Hugo"
CbFirma.AddItem "Rosa"
CbFirma.AddItem "André"
CbFirma.AddItem "Cátia"
CbFirma.AddItem "Carla"
CbFirma.AddItem "Isabel"


CBtodos = False
End Sub

Share this post


Link to post
Share on other sites
FreiNando

Ao fazeres CbFirma.List(0) = True, estás a alterar o valor do item da lista.

Para selecionar deves usar a propriedade Selected ex.: CbFirma.Selected(0) = True.

A  propriedade MultiSelect determina o modo de selecção:

  (0) fmMultiSelectSingle  - Apenas um item pode ser selecionado;

  (1) fmMultiSelectMulti - Varios items podem ser selecionado, e o utilizador clicka para marcar ou desmarcar;

  (2) fmMultiSelectExtended - Varios items , mas o utilizador tem de usar o ctrl ou shift para selecionar vários.

Uma forma desmarcar todos é mudar esta propriedade para  fmMultiSelectSingle e depois para fmMultiSelectMulti.

No teu código para simplificar  deves utilizar um ciclo:

Private Function todosselect()
      Dim I as Integer
      
      For I=0 To CbFirma.ListCount-1
           CbFirma.List(0) = True
      Next I
End Function


O caminho mais curto para conseguir fazer muitas coisas é fazer uma de cada vez. Samuel Smiles

Share this post


Link to post
Share on other sites
PMSF

uma coisa tão simples; mas ainda não conhecia :P

só uma correcção (para se alguém tentar utilizar): na versão simplificada do código deve-se utilizar:

Private Function todosselect()
     Dim I as Integer

     For I=0 To CbFirma.ListCount-1
          CbFirma.Selected(I) = True
     Next I
End Function

Ainda estou muito verde nestas andanças, obrigado pelas dicas :cheesygrin:

Share this post


Link to post
Share on other sites
FreiNando

e sim podia ter simplificado; mas ainda estou muito verde nestas andanças para pensar nestes promenores

Os ciclos não são promenores,

em conjunto com as condições fazem parte das bases em praticamente todas a linguagens de programação.


O caminho mais curto para conseguir fazer muitas coisas é fazer uma de cada vez. Samuel Smiles

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
Sign in to follow this  

×

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.