USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Dificuldade com checkbox
CSRocha
BRASILIA
DF - BRASIL
ENUNCIADA !
Postada em 28/07/2008 11:11 hs            
Bom dia, galera. Meu problema é o seguinte:

Tenho 12 checkboxes, em array, de 0 a 11, com a seguinte disposição:

[ 0]....[ 1]....[ 2]....[ 3]

[ 4]....[ 5]....[ 6]....[ 7]

[ 8]....[ 9]....[10]....[11]

Acontece que tenho 4 grupos que executarão tarefas similares, assim:

grupo 0 a 4, grupo de 5 a 7, grupo 8 (individual) e grupo 9 a 11.

Parece que complicou... explico: se marcar o check 2, queria que automaticamnte os checks do seu grupo (0, 1 e 3) fossem marcados automaticamente e todos os demais desmarcados.

E assim sucessivamente. Estou apanhando bastante, usando Select, ou diversos Ifs aninhados e não obtive sucesso ainda. Alguém se habilita a resolver?

   
Perci
MATÃO
SP - BRASIL
Postada em 28/07/2008 12:28 hs            
Amigo, se você fizer assim:
Private Sub Check2_Click()
    Check1.Value = vbChecked
    Check3.Value = vbChecked
    Check4.Value = vbChecked
End Sub
Não dá certo?
 
 
     
Tiranossauro
DOIS IRMÃOS
RS - BRASIL
Postada em 28/07/2008 12:31 hs            
se vc tem grupos pre-definidos pode trabalhar apenas com 4 chek box e isto facilitaria o trabalho.
     
Treze
Pontos: 2843 Pontos: 2843
SÃO VICENTE
SP - BRASIL
Postada em 28/07/2008 12:51 hs            
EIS O CÓDIGO COLEGA
 
Dim CONT As Integer
 
Private Sub Check1_Click(Index As Integer)
' GRUPO 1
If Index >= 0 And Index <= 4 And CONT = 0 Then
For A = 0 To 4
Check1(A).Value = 1
Next A
Else
For A = 0 To 4
Check1(A).Value = 0
Next A
End If
' GRUPO 2
If Index >= 5 And Index <= 7 And CONT = 0 Then
For A = 5 To 7
Check1(A).Value = 1
Next A
Else
For A = 5 To 7
Check1(A).Value = 0
Next A
End If
' GRUPO 3
If Index = 8 And CONT = 0 Then
Check1(8).Value = 1
Else
Check1(8).Value = 0
End If
' GRUPO 4
If Index >= 9 And Index <= 11 And CONT = 0 Then
For A = 9 To 11
Check1(A).Value = 1
Next A
Else
For A = 9 To 11
Check1(A).Value = 0
Next A
End If
CONT = CONT + 1
If CONT = 2 Then CONT = 0
End Sub
 
Private Sub Form_Load()
CONT = 0
End Sub
TÓPICO EDITADO
   
CSRocha
BRASILIA
DF - BRASIL
Postada em 28/07/2008 13:05 hs            
Os controles estão em um array: ckTurma(0) a (11). Já tentei também colocando cada grupo em um controle diferente:

ckSerie1(0 a 4) - 5 opções
ckSerie2(0 a 2) - 3 opções
ckSerie3 - só uma opção - e
ckSerie4(0 a 2) - 3 opções

Mas também não consegui.

Cada opção corresponde a uma série escolar: 1o ao 5o ano, 6o ao 8o ano, 9o ano (de ensino fundamental) e 1a a 3a séries do ensino médio.

Cada grupo desses tem uma grade curricular igual, ok? Posso simplesmente fazer 4 checks, colocando as opções agrupadas, assim:

[ ] 1o ao 5o ano
[ ] 6o ao 8o ano
[ ] 9o ano
[ ] 1a a 3a série

Isso resolveria, e é o que vou acabar fazendo mesmo. Mas queria automatizar com cada série individualmente porque praticamente a todo ano o MEC altera essa grade e de repente eles mudam tipo do 1o ao 4o ano uma grade, do 6o ao 9o ano outra grade, etc.

Então quero evitar ter que mexer no código no caso de ocorrer alterações em 2009, em 2010, etc. Talvez eu esteja fazendo a coisa errada, cansado nessa tentativa e não vendo outra solução, que pderia ser mais fácil.

O que estou fazendo nesse form é a criação da grade curricular, que ficará em tabela, por isso a necessidade de automatizar. Pelo exposto agora, se alguém tiver uma maneira diferente, aceito.

---------------
Treze, vc postou enquanto eu digitava esta resposta. Vou olhar teu código...

TÓPICO EDITADO
   
PH1959
Pontos: 2843
SÃO JOSÉ DOS CAMPOS
SP - BRASIL
ENUNCIADA !
Postada em 28/07/2008 13:08 hs            
o chekbox trabalha em grupo...
para vc fazer o q vc quer vc tem q ter cada grupo com um nome
grupo 0 a 4, grupo de 5 a 7, grupo 8 (individual) e grupo 9 a 11.
ficaria ....check1(0) até check1(4)
check2(0) até ckeck2(2)
check3 (0)
check4(0) a check4(2)

   
Página(s): 1/2      PRÓXIMA »

CyberWEB Network Ltda.    © Copyright 2000-2025   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página