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 ClassIstanziandola 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