JavascriptProva

martedì 6 agosto 2013

Classe "griglia" resa flessibile riguardo al tipo di controllo

Ho trovato il modo di flessibilizzare la mia classe Griglia rendendola usabile con diversi tipi di controlli.
Class griglia(Of T As {New, Control})
    Sub New(ByRef myForm As Form, ByVal numCaselle As Integer, ByVal rowLength As Integer)
        For n As Integer = 0 To (numCaselle - 1)
            Dim casella As T = New T

            casella.Left = casella.Width * (n Mod rowLength)
            casella.Top = casella.Height * (n \ rowLength)

            myForm.Controls.Add(casella)
        Next
    End Sub
End Class
Istanziandola in questo modo...
Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim miaGriglia As New griglia(Of TextBox)(Me, 60, 4)
        
    End Sub

End Class
...ottengo una griglia di TextBoxes:



mentre istanziando in questo modo...
Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim miaGriglia As New griglia(Of Button)(Me, 60, 4)
        
    End Sub

End Class
...ottengo una griglia di Buttons:



Mi chiedo se non ci sia un altro modo più sintetico di scrivere il codice, anche se così funziona perfettamente...

Nessun commento:

Posta un commento