Non trovo però come usare tag nei valuebox....
L'assegnamento di valori alle proprietà dei Controlli può avvenire:
* dall'IDE di Gambas cliccando una volta sul ValueBox e quindi cercando nella colonna di destra la proprietà .Tag si inserisce il valore desiderato;
* via codice:
- assegnando direttamente il valore alla proprietà dell'oggetto: valuebox1.Tag = valore_da_assegnare
- usando il metodo .SetProperty() della Classe Object: Object.SetProperty(ValueBox1, "Tag", valore_da_assegnare)
Oppure puoi provare ad adattare una cosa del genere:
For i = 1 To 37
controllo = "ValueBox" & Str$(i)
Write #handle, CShort(Me.Controls[controllo].value)
Next
In pratica nel contenitore cerchi le tue valuebox e gli assegni il tag o il valore.
Con il Tag come lo gestisco?
Il suggerimento di Top Fuel di utilizzare la proprietà .Tag è finalizzato ad evitare di scrivere questa parte del tuo codice:
a[0, 0] = ValueBox1.Value
a[0, 1] = ValueBox2.Value
a[1, 0] = ValueBox3.Value
a[1, 1] = ValueBox4.Value
b[0, 0] = ValueBox5.Value
b[0, 1] = ValueBox6.Value
b[1, 0] = ValueBox7.Value
b[1, 1] = ValueBox8.Value
Il .Tag (ma non solo esso, in vero) spesso è utile per individuare, distinguere - proprio in un ciclo - un oggetto rispetto agli altri della medesima Classe.... può essere utilizzato insomma come una sorta di segno di riconoscimento portato da quel solo Controllo in mezzo a tanti della medesima Classe.
La mia domanda è: posso gestire i valuebox creati nell'interfaccia grafica, come un array?
Io però vorrei ritornare alla domanda essenziale di cellman, che riporto in citazione.
La risposta è affermativa. Un possibile codice sarebbe questo, che utilizza un vettore di tipo ValueBox:
Private vb As New ValueBox[]
Public Sub Button1_Click()
Dim ob As Object
' Per ogni oggetto posto sul Form...
For Each ob In FMain.Children
'...se esso è un oggetto di tipo "ValueBox", allora la sua variabile
' di riferimento viene posta nel vettore monodimensionale:
If Object.Type(ob) = "ValueBox" Then vb.Add(ob)
Next
End
La variabile vettoriale di tipo "ValueBox" potrà dunque essere gestita successivamente come un qualsiasi altro vettore e tenendo conto dei metodi e delle proprietà appartenenti alla Classe "ValueBox".