JavascriptProva

domenica 18 agosto 2013

Rendere opzionali i parametri delle coordinate della griglia di controlli

Perchè non rendere opzionali anche i parametri relativi alle coordinate della griglia, con valore di default pari a zero?
Public Class Griglia(Of T As {New, Control})
    Inherits ArrayList
    Sub New(ByRef frm As Form, ByVal nCaselle As Integer, ByVal rowLength As Integer, Optional ByVal XCoord As Integer = 0, Optional ByVal YCoord As Integer = 0, Optional ByVal HSpace As Integer = 0, Optional ByVal VSpace As Integer = 0)
        For n As Integer = 0 To nCaselle - 1
            Dim casella As T = New T
            casella.Left = XCoord + (HSpace + casella.Width) * (n Mod rowLength)
            casella.Top = YCoord + (VSpace + casella.Height) * (n \ rowLength)
            frm.Controls.Add(casella)
            Add(casella)
        Next
    End Sub

End Class
con la conseguenza che il programma "chiamante" deve specificare obbligatoriamente solo:
  • Il form in cui creare la griglia di controlli;
  • il numero di caselle;
  • la lunghezza delle righe.
Ecco:
Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim miaGriglia = New Griglia(Of Controllo)(Me, 10, 3)
        For n As Integer = 0 To miaGriglia.Count - 1
            miaGriglia(n).text = n

        Next
    End Sub
End Class
Class Controllo
    Inherits TextBox
End Class
Funziona lo stesso, ed è mnemonicamente più facile!

Nessun commento:

Posta un commento