Ciao a tutti ragazzi.
Sto facendo un piccolo progettino personale per la gestione di una pulsantiera, ve lo spiego brevemente.
Ho un Panel di dimensioni variabili ( correlate alla risoluzione dello schermo ) nel quale creo dinamicamente N bottoni in base alle dimensioni, ovvero :
il pannello è largo 800 Pixel e Alto 600
I bottoni sono quadrati da 50 x 50
all'interno del pannello possono essere contenuti 192 bottoni
quindi parte un ciclo FOR per la creazione e la sistemazione corretta dei bottoni.
Ora fin qui funziona tutto correttamente. Nasce la necessità di dover specificare un numero di pulsanti necessari in base ad un preciso parametro, ad esempio :
Il pannello contiene massimo 192 bottoni da 50 x 50
I bottoni necessari sono 200 ( quindi si va fuori di 8 bottoni )
Il pannello ovviamente è sprovvisto di scroll e quindi gli 8 bottoni di troppo sarebbero inutilizzabili in quanto creati oltre le dimensioni del pannello.
Vorrei riuscire a fare una specie di paginazione del pannello, ma non ho la minima idea di come farlo, è un po che ci penso e per un motivo o per un altro scarto tutte le idee.
Vi metto qui sotto il metodo che uso per la creazione dei bottoni
PS: Il codice è molto grezzo non ci ho perso tempocodice:' se il metodo è richiamato dall'evento resize del form ' cancello tutti gli oggetti button attualmente presenti ' in modo da crearne di nuovi ridimensionati If resize = True Then removeall() End If 'assengo le variabili left e top e le imposto a 0 Dim left As Integer = 0 Dim top As Integer = 0 ' assengo le variabili per stabilire le dimensioni del form Dim FormWidht As Integer = Panel2.Width Dim FormHeight As Integer = Panel2.Height 'assegno le variabili per definire le dimensioni di ogni bottone Dim ButtonWidth As Integer = 90 Dim ButtonHeight As Integer = 50 'calcolo le righe, le colonne e il totale dei bottoni che possono 'essere disposti nell'area in base alle dimensioni del panel Dim buttonRows As Double = FormWidht / ButtonWidth buttonRows = Math.Truncate(buttonRows) - 1 Dim buttonRowsM As Double = FormWidht / ButtonWidth buttonRowsM = Math.Truncate(buttonRowsM) - 1 Dim ButtonCol As Double = FormHeight / ButtonHeight ButtonCol = Math.Truncate(ButtonCol) - 1 'massimo di bottoni che possono essere contenuti all'interno dell'area Dim TotButton As Integer = ButtonCol * buttonRows 'creo i bottoni e li dispongo sul form i base alle righe ' e alle colonne precedentemente calcolate. For i = 1 To TotButton ' istanzio l'ogetto Dim btn As New Button 'imposto le propietà btn.Text = "prova" btn.Width = ButtonWidth btn.Height = ButtonHeight If i > buttonRows Then top = top + ButtonHeight btn.Top = top left = 0 btn.Left = left buttonRows = buttonRows + buttonRowsM Else btn.Top = top btn.Left = left End If AddHandler btn.Click, AddressOf btnreg_Click Panel2.Controls.Add(btn) left = left + ButtonWidth ProgressBar1.Maximum = i ProgressBar1.Minimum = 0 If ProgressBar1.Value < i Then ProgressBar1.Value += 1 ElseIf ProgressBar1.Value = ProgressBar1.Maximum Then End If Next Label1.Text = Panel2.Controls.Count If ProgressBar1.Value = ProgressBar1.Maximum Then Panel2.Visible = True End If![]()

Rispondi quotando