Oppure

Loading
Questo topic e' stato chiuso dal moderatore.
30/09/11 13:34
Lafa_96
allora, ho necessità di creare una lista di label in modo da poterli selezionare e modificare tramite un indice e quindi tramite un ciclo for.
per creare la lista ho usato il seguente codice:
Public Class Form1
    Dim parola() As String = {"p","a","r","o","l","a"}
    Dim lab As Label
    Dim lista As New List(Of Label)
   
 Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim i As Integer
        For i = 0 To parola.Length - 1
            lab = New Label
            lab.Visible = True
            lab.Text = i
            lista.Add(lab)
            Me.Controls.Add(lista(i))
        Next
    End Sub
End Class


il problema è che nel debug viene visualizzato un solo label! ho provato anche a d inizializzarli e a inserirli nel form singolarmente ma ne viene visualizzato uno solo (la posizione non è settata ma ho provato anche a cambiare quella).
è la prima volta che utilizzo le liste e di sicuro ho sbagliato qualcosa...ma cosa?


EDIT: se può essere d'aiuto nella finestra di controllo immediato mi viene fuori:
Eccezione first-chance di tipo 'System.ArgumentOutOfRangeException' in mscorlib.dll
Ultima modifica effettuata da Lafa_96 30/09/11 13:50
aaa
30/09/11 13:42
Thejuster
la posizione della label?

se non dai una posizione ad ogni label le vedi tutte sovrapposte e quindi hai l'impressione che ce ne sia solo una ma invece ci sono tutte.

inserisci una variabile che ad ogni ciclo aumenta X o Y di una decina di pixel
e dopo

label.Location = new Point(x,y)

mire.forumfree.it/ - Mire Engine
C# UI Designer
30/09/11 15:20
Se semplicemente scrivi

lab.Location = New Point(0, i * 30)

subito prima della Add, funziona tutto.


P.S. Ha più senso scrivere

Dim parola As String = "parola"