con Optional, come in VB6.
Però è necessario stabilire anche il valore di default.
Inserisco una spaziatura orizzontale e una verticale nella mia classe griglia, come parametri opzionali con valore di default zero, in modo che se non specificati la griglia verrà senza spaziature fra i controlli che la costituiscono.
Ho imparato come fare in pochi minuti, e il risultato mi è venuto perfetto al primo tentativo.
Public Class Griglia(Of T As {New, Control}) Public GridArray = New ArrayList Sub New(ByRef myForm As Form, ByVal numCaselle As Integer, ByVal rowLength As Integer, ByVal Orientamento As Integer, ByVal XCoord As Integer, ByVal YCoord As Integer, Optional ByVal HSpace As Integer = 0, Optional ByVal VSpace As Integer = 0) For n As Integer = 0 To (numCaselle - 1) Dim casella As T = New T If Orientamento = GRIGLIA_ORIZZONTALE Then casella.Left = XCoord + (HSpace + casella.Width) * (n Mod rowLength) casella.Top = YCoord + (VSpace + casella.Height) * (n \ rowLength) ElseIf Orientamento = GRIGLIA_VERTICALE Then casella.Left = XCoord + (HSpace + casella.Width) * (n \ rowLength) casella.Top = YCoord + (VSpace + casella.Height) * (n Mod rowLength) End If GridArray.Add(casella) myForm.Controls.Add(casella) Next End Sub End ClassOra faccio qualche prova:
Spaziatura orizzontale:
Dim miaGriglia As New Griglia(Of Controllo)(Me, 30, 4, GRIGLIA_ORIZZONTALE, 0, 0, 10)
Spaziatura verticale:
Dim miaGriglia As New Griglia(Of Controllo)(Me, 30, 4, GRIGLIA_ORIZZONTALE, 0, 0, , 10)
Spaziatura doppia:
Dim miaGriglia As New Griglia(Of Controllo)(Me, 30, 4, GRIGLIA_ORIZZONTALE, 0, 0, 10, 10)
Credo che la cosa sia perfettamente riuscita!
Nessun commento:
Posta un commento