Oppure

Loading
29/10/16 21:50
DavidP
Salve vi espongo l'ennesimo problema a cui non riesco a venirne a capo.
allora vorrei creare tipo un impaginazione come quelle che si trovano magari a fine pagine di internet per cambiare pagina, espemio: << < 1 2 3 4 5 6 > >> tutto con delle label e fin qui nessun problema con questo codice:
 Dim tbx(50) As Label

        For i = 0 To 49
            tbx(i) = New Label
            tbx(i).Width = 30
            tbx(i).Height = 20
            tbx(i).Top = 0
            tbx(i).Left = i * 30
            Me.Controls.Add(tbx(i))
            tbx(i).Text = i + 1
        Next 


questo codice crea 50 label di stesse dimensioni ecc.. ecc..
adesso il mio problema e che arrivato ad un certo punto della form le label scendano sotto partendo dalla prima, esempio:
1 2 3 4 5 6 7 8
9 10 11 12 13 14 15 16

come posso fare??
e possibile assegnare poi a singole label il comando che se cliccate mi diano un msg con il numero presente all'interno??
aaa
30/10/16 8:35
torn24

Modifichi la proprietà top e left in base ai numeri di label.
Esempio
Dim tbx(50) As Label
Dim j as integer=1
Dim NumeroRighe as integer =0
Dim SpazioIniziale as integer=500
DIm SpaziaturaRighe as integer=100
 
        For i = 0 To 49
           
            IF i>8 THEN 'calcolo il numero righe da otto elementi
               NumeroRighe=Cint(i/8)
            END IF
            IF i mod NumeroRighe =0 THEN  ' SE non esiste resto, sono tutte righe da otto, devo partire da inizio riga 
                j=1
            END IF
            tbx(i) = New Label
            tbx(i).Width = 30
            tbx(i).Height = 20
            tbx(i).Top = DistanzaIniziale + NumeroRighe * SpaziaturaRighe 'spazio tra riga e riga 
            tbx(i).Left = j * 30
            Me.Controls.Add(tbx(i))
            tbx(i).Text = i + 1
            j+=1
            
        Next





Qualcosa di simile, forse ha bisogno di correzzioni...
aaa
31/10/16 20:37
DavidP
grazie infinite per lo spunto lho modificato un po e adesso soddisfa le mie esigenze.
ecco il codice modificato e funzionante, nel caso potesse servire a qualcuno:
Dim numero, spazio, j As Integer
        Dim tbx(50) As Label
        numero = 50
        spazio = 100
        j = 0

        For i = 1 To numero
            If i Mod 10 = 0 Then
                tbx(i) = New Label
                tbx(i).Width = 20
                tbx(i).Height = 20
                tbx(i).Top = spazio
                tbx(i).Left = j * 30
                Me.Controls.Add(tbx(i))
                tbx(i).Text = i
                spazio += 20
                j = 0
            Else
                tbx(i) = New Label
                tbx(i).Width = 20
                tbx(i).Height = 20
                tbx(i).Top = spazio
                tbx(i).Left = j * 30
                Me.Controls.Add(tbx(i))
                tbx(i).Text = i
                j += 1
            End If

        Next


Adesso, la cosa più importante è come assegno ad una label che se cliccata mi esegue un comando?
Grazie mille. :hail:



Grazie lo stesso ho risolto il tutto..
Ultima modifica effettuata da DavidP 31/10/16 21:45
aaa