Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [Vb.Net]creare seguenza label
Forum - C# / VB.NET - [Vb.Net]creare seguenza label

Avatar
DavidP (Normal User)
Pro


Messaggi: 87
Iscritto: 31/08/2009

Segnala al moderatore
Postato alle 23:50
Sabato, 29/10/2016
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:
Codice sorgente - presumibilmente VB.NET

  1. Dim tbx(50) As Label
  2.  
  3.         For i = 0 To 49
  4.             tbx(i) = New Label
  5.             tbx(i).Width = 30
  6.             tbx(i).Height = 20
  7.             tbx(i).Top = 0
  8.             tbx(i).Left = i * 30
  9.             Me.Controls.Add(tbx(i))
  10.             tbx(i).Text = i + 1
  11.         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??


DavidP
PM Quote
Avatar
torn24 (Normal User)
Pro


Messaggi: 137
Iscritto: 04/01/2008

Segnala al moderatore
Postato alle 9:35
Domenica, 30/10/2016

Modifichi la proprietà top e left in base ai numeri di label.
Esempio
Codice sorgente - presumibilmente VB.NET

  1. Dim tbx(50) As Label
  2. Dim j as integer=1
  3. Dim NumeroRighe as integer =0
  4. Dim SpazioIniziale as integer=500
  5. DIm SpaziaturaRighe as integer=100
  6.  
  7.         For i = 0 To 49
  8.            
  9.             IF i>8 THEN 'calcolo il numero righe da otto elementi
  10.                NumeroRighe=Cint(i/8)
  11.             END IF
  12.             IF i mod NumeroRighe =0 THEN  ' SE non esiste resto, sono tutte righe da otto, devo partire da inizio riga
  13.                 j=1
  14.             END IF
  15.             tbx(i) = New Label
  16.             tbx(i).Width = 30
  17.             tbx(i).Height = 20
  18.             tbx(i).Top = DistanzaIniziale + NumeroRighe * SpaziaturaRighe 'spazio tra riga e riga
  19.             tbx(i).Left = j * 30
  20.             Me.Controls.Add(tbx(i))
  21.             tbx(i).Text = i + 1
  22.             j+=1
  23.            
  24.         Next



Qualcosa di simile, forse ha bisogno di correzzioni...


Se si impara dai propri sbagli
non è cosi drammatico  sbagliare !
PM Quote
Avatar
DavidP (Normal User)
Pro


Messaggi: 87
Iscritto: 31/08/2009

Segnala al moderatore
Postato alle 21:37
Lunedì, 31/10/2016
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:
Codice sorgente - presumibilmente VB.NET

  1. Dim numero, spazio, j As Integer
  2.         Dim tbx(50) As Label
  3.         numero = 50
  4.         spazio = 100
  5.         j = 0
  6.  
  7.         For i = 1 To numero
  8.             If i Mod 10 = 0 Then
  9.                 tbx(i) = New Label
  10.                 tbx(i).Width = 20
  11.                 tbx(i).Height = 20
  12.                 tbx(i).Top = spazio
  13.                 tbx(i).Left = j * 30
  14.                 Me.Controls.Add(tbx(i))
  15.                 tbx(i).Text = i
  16.                 spazio += 20
  17.                 j = 0
  18.             Else
  19.                 tbx(i) = New Label
  20.                 tbx(i).Width = 20
  21.                 tbx(i).Height = 20
  22.                 tbx(i).Top = spazio
  23.                 tbx(i).Left = j * 30
  24.                 Me.Controls.Add(tbx(i))
  25.                 tbx(i).Text = i
  26.                 j += 1
  27.             End If
  28.  
  29.         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 il 31/10/2016 alle 22:45


DavidP
PM Quote