Risolto control.location

Orset

Utente abituale
14 Dicembre 2017
103
16
torino
2010
0
ciao a tutti, ho un problema, quando creo un controllo (bottoni, etichette ecc...) dinamico, e gli dico dove crearlo con control.Location mi funziona, ma se devo creare controlli dinamici all'interno di una groupbox o tabpage, queste escono fuori, senza andare a capo. Come faccio a dirgli, rimani nei limiti della tua Groupbox, altrimenti vai a capo?
 

Orset

Utente abituale
14 Dicembre 2017
103
16
torino
2010
0
In poche parole, quando vede che supera il confine del suo contenitore, deve ricreare un altra fila di bottonì a capo
 

Orset

Utente abituale
14 Dicembre 2017
103
16
torino
2010
0
risolto in parte :
Codice:
 tPage.Controls.Add(btn)
                        btn.Location = New Point(tPage.Controls.Count * btn.Width - btn.Width + j, i)
                        If tPage.Controls.Count Mod 6 = 0 Then
                            btn.Top = j + 60
                            btn.Left = i
                        End If
Ora va a capo, unico problema e che cosi però, mi sovrappone tutti quelli della seconda riga, come risolvo?

L'unico proble
 

Orset

Utente abituale
14 Dicembre 2017
103
16
torino
2010
0
Ora allego un esempio simile al mio problema: come vedete nel'esempio, creo un tot di pulsanti(io non so quanti pulsanti verranno creati) ma indipendentemente dal numero di bottoni usati, io vorrei che il pulsante rimanga sempre all'interno del controllo andando a capo, sono sicuro che c'è un comando, ma non l'ho trovo, l'esempio che inserisco e simile al mio problema, e va a creare un numero di pulsanti, e come vedrete, la loro creazione continua nella stessa riga.
 

Allegati

patel

Utente assiduo
25 Marzo 2016
1.348
38
74
Livorno
2010
1
prova così
Codice:
Public Class Form1

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Dim posy As Integer = 12, posx As Integer = 5
        For i = 1 To 12
            Dim bottone As New Button
            bottone.Height = bottone.Height * 2
            bottone.Width = bottone.Width * 2
            tPage.Controls.Add(bottone)
            If posx + bottone.Width >= tPage.Width Then
                posy += bottone.Height + 20
                posx = 5
            End If
            bottone.Location = New Point(posx, posy)
            posx += (bottone.Width + 2)

        Next
    End Sub
End Class
Ovviamente se non hai preferenze di posizione dei pulsanti l'uso del FlowLayoutPanel è più semplice, non c'è bisogno di calcolare le posizioni, è tutto automatico
 

Orset

Utente abituale
14 Dicembre 2017
103
16
torino
2010
0
Grazie mille patel :) avevo difficoltà ad usare le coordinate x e y, ma ora ho capito come usarle :)
 

Sostieni ForumExcel

Aiutaci a sostenere le spese e a mantenere online la community attraverso una libera donazione!