GroupBox c'è o no controllo

di il
24 risposte

GroupBox c'è o no controllo

Ciao a tutti, io inserisco dei controlli in una Groupbox, per farlo uso:
controllo.Location = New Point(posx, posy)
incrementando sempre Y.
io prima di creare il controllo, vorrei controllare la mia Groupbox in ogni posy, e se è presente il controllo, aumento posy,altrimenti creo il controllo in posy.
Così facendo, se il mio ragionamento è giusto, dovrebbe crearmi il controllo nel primo spazio vuoto.
quale comando si usa per vedere se in quella posizione c'è un controllo?

24 Risposte

  • Re: GroupBox c'è o no controllo

    No, non ha senso. Non si fa così, non potrebbe funzionare.

    Costruisci una lista di controlli e scorri la lista.
  • Re: GroupBox c'è o no controllo

    Io ho provato in questo modo :
     For i = 1 To GroupBox2.Controls.Count Step 1
                idx = InStr(GroupBox2.Controls(i).Text, "-")
                If idx < 0 Then
                    posy = GroupBox2.Controls(i).Location.Y
                    Exit For
                ElseIf idx > 0 Then
                    posy = posy + 40
                    Exit For
                End If
    io ho tot righe di controlli, io so che tra una riga e l'altra, posy (cordinata y) varia di 40.
    Cosi mi funziona in parte cioè:
    se elimino l'ultima riga, quando vado a ricreare un altra riga di controlli me li inserisci dove ho eliminato quelli precedenti, ma non funziona se elimino una riga di controlli inmezzo alla lista.Quando la ricreofa cassini.
    Io mi sono aggrappato al fatto che so che su ogni riga, ce sempre un controllo che ha simbolo -
  • Re: GroupBox c'è o no controllo

    Non potresti evitare di eliminare i controlli e limitarti soltanto a nasconderli ?
  • Re: GroupBox c'è o no controllo

    Ripeto ...

    1) usa una collezione di controlli

    2) aggiungi ed elimina i controlli dalla collezione

    3) scrivi una funzione che ridisegni tutto in base al contenuto della collezione
  • Re: GroupBox c'è o no controllo

    Non rimarebbe lo stesso problema? io incremento posy ogni volta che premu il pulsante per creare una riga di controlli, ora, elimino una riga, o la nascondo, non mi cambia la posy, comunque prima ho sbagliato a scrivere il codice, quello giusto è:
    
    For i = GroupBox2.Controls.Count - 1 To 0 Step -1
                ' Debug.Print(GroupBox2.Controls(i).Name)
                If TypeOf GroupBox2.Controls(i) Is Label Then
                    idx = InStr(GroupBox2.Controls(i).Text, "€")
                    If idx < 0 Then
                        posy = GroupBox2.Controls(i).Location.Y
                        Exit For
                    ElseIf idx > 0 Then
                          'qua devo capire come fare...... 
                    End If
                End If
            Next i
    
  • Re: GroupBox c'è o no controllo

    Oregon scusa la mia ignoranza, ma non so cosa sia una collezione di controlli
  • Re: GroupBox c'è o no controllo

    Sulla collezione di controlli, si deve creare un panel?
  • Re: GroupBox c'è o no controllo

    Nella discussione precedente ti avevo consigliato di usare gli array di controlli, molto più facili a gestire (come le collezioni), ma sono scelte che dipendono dal tuo obiettivo che non hai mai spiegato.
  • Re: GroupBox c'è o no controllo

    Io mio obbiettivo è: schiacciando dei tasti, creare 2 label + un tasto nella stessa fila in una groupbox. es:

    Schiaccio bottone 1, e nella groupbox creo label1 label2 buttonx, se premo un altro bottone o lo stesso, mi crea una altra fila con altri 3 controlli.

    come detto prima tra i 3 controlli creati, ce un pulsante, che elimina la riga di controlli (questo risolto)
    il mio problema ora e riorganizzare la groupbox con questa lista di controlli.
    io non posso inscrivere nel groupbox una label, perché ho necessità di usare le coordinate. Ho difficoltà nel eliminare gli spazi che rimangono tra le righe quando le elimino, e se elimino l'ultima riga, di non incrementare la coordinataY(questo ci sto riuscendo). Mi rimane una grande incognita ad eliminare le righe vuote
  • Re: GroupBox c'è o no controllo

    Questo già lo sapevo, io chiedevo a cosa ti serve tutto questo, spiegare bene e subito le cose serve ad ottenere consigli più mirati.
  • Re: GroupBox c'è o no controllo

    Ah scusa patel, non avevo capito, In poche parole, io ho un DB, con dei prodotti da ordinare,io tramite software che ho creato, mi collego al DB, in cui ho creato un tasto dinamico per ogni prodotto che ho nel database, in cui è specificato il nome e il prezzo, se devo fare un ordine di un prodotto, io schiaccio il bottone dinamico creato all'avvio, e l'ho inserisco in una groupbox (come se fosse la lista della spesa), in cui verranno creati 3 controlli, 2 label, in una ci sarà scritto il nome dell' ordine, e nell'altro il prezzo, e affianco a queste due label un tasto X, che mi da la possibilità di eliminare il prodotto (elimina le due label + tasto x) dalla mia Group box. Fin qui ci sono, tutto bene. Il problema e che così facendo, se devo eliminare più prodotti da un ordine, rimangono tasti spazi vuoti. io la groupbox l'h creata all'interno di una label, ho messo la groupbox con autosize, cosi da ingrandirmi man mano che i prodotti aumentano, e ho messo la label che contiene la groupbox : autoscrool, cosi da creare una scroolbar sulla destra, per scorrere gli ordini. Io quando creo i controlli nella groupbox, per questione di ordine e organizzazione usa come riferimento le coordinate X e Y. Ogni volta che inserisco un ordine, la mia Y verrà incrementata per esempio di 30, cosi da creare una riga per ogni ordine. ma quando io elimino una riga, rigane spazio vuoto, mentre la y continua a incrementarsi. Io so che almeno in ogni riga, io ho un simbolo es. "-", allora gli dico, tutto le volte che incontri questo simbolo, puoi incrementare Y e creare una altra riga sotto, Ma questa soluzione non funziona, proprio perché può capitare che io tra una riga e l'altra abbia degli spazi bianchi date dall'eliminazione di alcune righe. A questo punto, quando premo il tasto X per eliminare i controlli della stessa riga o Y, dovrei far diminuire la Y di tutti i controlli così da spostarsi su e coprire il "vuoto", ma non saprei come fare.
  • Re: GroupBox c'è o no controllo

    Non sarebbe stato più semplice utilizzare una datagridview oppure una checked list view ?
  • Re: GroupBox c'è o no controllo

    E ma mi serviva una sfondo bianco pulito, senza righe ne colonne con un controllo affianco per le eliminazione dei due controlli che non avevo a quel punto idea di come fare, a me basterebbe fare un controllo incrementando y di 30, cosi facendo controllo ogni riga se è presente un controllo, se non è presente, da li in poi modifico le coordinate y -30.
  • Re: GroupBox c'è o no controllo

    Io non riesco più a seguirti nel ragionamento, se puoi carica il tuo progetto su dropbox o simili e posta il link
Devi accedere o registrarti per scrivere nel forum
24 risposte