Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    Matrice di OptionButton

    Ciao.
    Dovrei fare un controllo su una serie di option button.
    Quando l'utente preme il pulsante OK, deve verificare quale optButton è checkato e in base a questo fare diverse operazioni.

    Avendo una matrice con 3 optbutton, ho implementato questo codice:

    codice:
    Private Sub Command2_Click()
    Select Case opt1(x).Value
     Case Is = 1
      lblSpiegazione.Caption = "opt 1"
     Case Is = 2
      lblSpiegazione.Caption = "opt 2"
     Case Is = 3
      Principale.Hide
      frmProdotti.Show
    End Select
    
    End Sub
    ma praticamente funziona solo nel caso in cui viene selezionata la prima opzione.

    Why?

  2. #2
    E si prchè il Case è riferito al valore che può assumere Option(x).Value cioè 0 o 1. Non so se mi sono spiegato un granchè bene.

    saluti

  3. #3
    dipende da quanto vale x, tu verifichi il vale della x° option button. usa le if

    codice:
    if opt1(0).Value=1 then 'prima option
      lblSpiegazione.Caption = "opt 1"
    else if opt1(1).Value=1 then 'seconda option
      lblSpiegazione.Caption = "opt 2"
    else 'terza option
      Principale.Hide
      frmProdotti.Show
    end if

  4. #4

    Re: Matrice di OptionButton

    codice:
    Select Case opt1(x).Value
    quanto vale la x di:
    opt1(x).value ?

    se non è specificato vale zero
    quindi controlla solo l'elemento 0 della tua matrice di controlli

    prova
    codice:
    for i=0 to opt1.count-1
    if opt1(i).value = 0 then
    ...
    else
    ...
    end if
    next i
    prude il dito, lui sdraiato
    ha giocato a guardie e ladri col ladro sbagliato

  5. #5
    Ok ho capito il perchè dell'errore.
    Ho provato i codici che mi avete postato.Il codice di GudFella non funziona. Non riconosce nessuna delle opzioni.

    Un'altra domanda...ma c'è un'effettiva convenienza ad utilizzare una matrice di optButton? L'avevo usato perchè pensavo che il controllo tra più opt veniva fatto solo se esse erano della stessa matrice, ma non è così.

  6. #6
    per sapere quale OptionButton ha cliccato l'utente puoi fare un ciclo For:
    codice:
    Private Sub Command2_Click()
    
       Dim i As Integer
    
       For i = 0 To opt.UBound
           if opt(i).Value = 1 Then Exit For
       Next i
       
       If i = 3 Then
             Principale.Hide
             frmProdotti.Show
         Else
             lblSpiegazione.Caption = "opt " & i
       End If
    
    End Sub
    spero sia ciò che ti serve

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  7. #7
    Non devi cercare la soluzione altrove quando è sotto gli occhi

    esiste un evento Option1_Click che restituisce un parametro di quale option della matrice è stato selezionato più facile di così!!


    Private Sub Option1_Click(Index as Integer)
    Me.Caption = "Selezionato option " & Index + 1 (parte da 0)
    End Sub.
    Il dubbio non è piacevole, ma la certezza è ridicola. Solo gli imbecilli son sicuri di ciò che dicono.

  8. #8
    Originariamente inviato da ladyBlu
    per sapere quale OptionButton ha cliccato l'utente puoi fare un ciclo For:
    codice:
    Private Sub Command2_Click()
    
       Dim i As Integer
    
       For i = 0 To opt.UBound
           if opt(i).Value = 1 Then Exit For
       Next i
       
       If i = 3 Then
             Principale.Hide
             frmProdotti.Show
         Else
             lblSpiegazione.Caption = "opt " & i
       End If
    
    End Sub
    spero sia ciò che ti serve

    Grazie.
    A cosa serve l'opzione .UBound?

  9. #9
    Originariamente inviato da Genius7115
    Non devi cercare la soluzione altrove quando è sotto gli occhi

    esiste un evento Option1_Click che restituisce un parametro di quale option della matrice è stato selezionato più facile di così!!


    Private Sub Option1_Click(Index as Integer)
    Me.Caption = "Selezionato option " & Index + 1 (parte da 0)
    End Sub.
    Non mi funziona

  10. #10
    Originariamente inviato da Stefanik
    Grazie.
    A cosa serve l'opzione .UBound?
    .Ubound ti restituisce l'indice più alto dell'array.


    codice:
    Private Sub Option1_Click(Index as Integer) 
       Me.Caption = "Selezionato option " & Index + 1 (parte da 0) 
    End Sub.
    hai sostituito Option1 col nome del tuo controllo OptionButton?

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.