JavascriptProva

mercoledì 12 settembre 2012

Simulazione di matrici di controlli: un'idea

Una delle cose che più mi ha sconvolto del nuovo ambiente di programmazione è che non è più possibile creare matrici di controlli!
Pare che non solo io, ma anche fior di programmatori professionisti si siano trovati in difficoltà per questo.
Uno degli artifizi che ho trovato spulciando alla ricerca di soluzioni al problema è quello di apporre alla proprietà Name del controllo un numero, in modo da usarlo come indice di una matrice di controlli.
Posso sperimentare sullo scheletro del mio programma qualcosa del genere...

Per intanto, diamo un Nome ai controlli che ho creato.
    Sub disponiCaselle(Of T As New)(ByVal nome As String, ByVal larghezza As Integer, ByVal sinistra As Integer)
        Dim numero As Integer
        numero = DateTime.DaysInMonth(anno, mese)
        Dim cas As Object
        For n = 0 To numero - 1
            cas = New T
            With cas
                .Name = nome & n + 1
                .BorderStyle = BorderStyle.FixedSingle
                .BackColor = Color.White
                .Width = larghezza
                .Left = sinistra
                .Top = .Height * (n Mod numero)
                .testo = .Name 'GiornoDellaSettimana(CDate(n + 1 & "/" & mese & "/" & anno))
                .Scrivi()
            End With
            Me.Controls.Add(cas)
        Next
    End Sub
Sì, ecco. Per fare la prova ho fatto in modo che la proprietà testo di ogni elemento fosse la sua proprietà Name, "commentizzando" il codice che c'era prima per non perderlo.



Ora sto pensando di creare per ciascuna classe una proprietà Index nella quale porre il numero ricavato dalla proprietà Name con un artifizio di manipolazione delle stringhe.
In questo modo, posso far riferimento a ogni elemento con il suo indice, un po' come nel buon (neanche tanto!) vecchio VB6...

Nessun commento:

Posta un commento