Public Class Form1 Dim mese As Integer = 9 Dim anno As Integer = 2012 Dim larghezze As Integer() = {300, 100} Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load disponiCaselle(larghezze(0), SommaElementiDiArray(larghezze, 0)) disponiCaselle(larghezze(1), SommaElementiDiArray(larghezze, 1)) End Sub Sub disponiCaselle(ByVal larghezza As Integer, ByVal sinistra As Integer) Dim numero As Integer numero = DateTime.DaysInMonth(anno, mese) Dim casella As Label For n = 0 To numero - 1 casella = New Label With casella .BorderStyle = BorderStyle.FixedSingle .BackColor = Color.White .Width = larghezza .Left = sinistra .Top = .Height * (n Mod numero) .Text = GiornoDellaSettimana(CDate(n + 1 & "/" & mese & "/" & anno)) End With Me.Controls.Add(casella) Next End Sub End ClassHo isolato il codice che dispone le caselle in colonna nella subroutine disponicaselle, in modo da poterla richiamare più volte.
Quindi do alla routine due parametri, uno per la larghezza della colonna e uno per la posizione sinistra della colonna.
Ponendo in una matrice le larghezze predeterminate per ciascuna colonna, dalla prima all'ultima, faccio in modo che il primo parametro della subroutine sia il numero dell'elemento della matrice che contiene la larghezza della colonna, e il secondo parametro sia la somma delle larghezze delle colonne precedenti.
Funziona.
In questo modo posso predeterminare le larghezze delle varie colonne semplicemente modificando i valori della matrice larghezze, senza impazzire più di tanto.
Nessun commento:
Posta un commento