creare checkbox in automatico



  • creare checkbox in automatico
    di RITA (utente non iscritto) data: 13/09/2013 09:23:46

    Ciao a tutti
    un quesito da sottoporvi
    ho una userform con all'interno tre chekbox ed all'interno delle checkbox ho inserito dei comandi a seconda che siano vfleggate o meno
    la mia domanda e' questa
    si puo richiamare una userform che sia vuota e creare "n" chekbox che abbiano poi al loro interno determinati comandi senza che vengano create a priori?




  • di Vecchio Frac data: 13/09/2013 09:51:42

    Sì, puoi creare controlli al volo.
    Devi utilizzare il metodo Add specificando l'oggetto desiderato (per esempio un controllo in un form) in fase di esecuzione. La sintassi per il metodo Add per aggiungere controlli a un form è il seguente:
    Set Control = object.Add( ProgID, Name, Visible)
    L'unico argomento obbligatorio che dobbiamo fornire è il ProgID (vedi tabella sottostante).

    CheckBox Forms.CheckBox.1
    ComboBox Forms.ComboBox.1
    CommandButton Forms.CommandButton.1
    Frame Forms.Frame.1
    Image Forms.Image.1
    Label Forms.Label.1
    ListBox Forms.ListBox.1
    MultiPage Forms.MultiPage.1
    OptionButton Forms.OptionButton.1
    ScrollBar Forms.ScrollBar.1
    SpinButton Forms.SpinButton.1
    TabStrip Forms.TabStrip.1
    TextBox Forms.TextBox.1
    ToggleButton Forms.ToggleButton.1

     
    'un semplice esempio. Serve uno userform con un commandbutton1 cui associare questo evento:
    Private Sub CommandButton1_Click()
    Dim ctl As Control
     
       with me
            Controls.Add "Forms.CommandButton.1", "Pulsante"
            pulsante.Caption = "Hello world"
      end with
    
    End Sub






  • di Vecchio Frac data: 13/09/2013 09:55:34

    L'esempio era incompleto :)
    Dopodichè probabilmente vorrai associarvi un evento ^_^ (ma dipende dal tipo di controllo che imposti)
     
    Private Sub CommandButton1_Click()
    Dim ctl As Control
     
       with me
            Controls.Add "Forms.CommandButton.1", "Pulsante"
            pulsante.Caption = "Hello world"
      end with
    
       Set ctl = Controls.Add("Forms.CommandButton.1", "Pulsante2")
       ctl.Caption = "Hello"
    
    End Sub






  • di rita (utente non iscritto) data: 13/09/2013 10:20:42

    grazie per la tempestiva riposta
    provero' e ti faro sapere



  • di Vecchio Frac data: 13/09/2013 10:24:47

    Come (migliore) alternativa suggerisco di creare a disegno tutti i controlli necessari, con tutti gli eventi già predisposti, e nasconderli in esecuzione all'avvio. Quando ti servono, li rendi visibili e li hai già pronti, con il loro codice già fatto e mantenuto.





  • di tortyno71 (utente non iscritto) data: 13/09/2013 10:35:45

    @VF
    che intendi con :creare a disegno tutti i controlli?



  • di Grograman data: 13/09/2013 10:37:40

    Anche perchè, almeno per quanto mi riguarda, creare il codice via codice è una roba complicata!



  • di Vecchio Frac data: 13/09/2013 11:25:52

    "a disegno" o "in progettazione" è quando crei l'userform e ci posizioni i controlli nell'editor, non via codice che come dice Gro' è complicato da gestire.