Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Array di label da vb6 a vb8
Forum - C# / VB.NET - Array di label da vb6 a vb8

Avatar
Alfonso (Normal User)
Rookie


Messaggi: 37
Iscritto: 16/05/2009

Segnala al moderatore
Postato alle 18:31
Mercoledì, 20/05/2009
Questo topic è stato chiuso dal moderatore

Salute a tutti

In vb6 nella form1 ho una label1(0) che in esecuzione si moltiplicherà con l'istruzione:

    Aggiungi(1)
    Aggiungi(2)

------------------------------------

    Private Sub Aggiungi(ByRef N As integer)
        
    Carica(gDes(N))

    End sub
------------------------------------

    Private Sub Carica(c As Control)

        Load c
         c.Visible = True
    c.Top = xxx
         c.BackColor = vbWhite
        c.Caption = ""
    
    End Sub

************** in vb8

gDes  è il Compatibility.Vb6.LabelArray creato da vb8 nella conversione
_gDes_0 è il nome della prima label

tralasciando la sub Carica

    Private Sub Aggiungi(ByRef N As short)
        
    Dim gDes(n) as new label  ' da errore: new non può essere usato con array

    Dim gDes(n) as new gDes  ' da errore: Tipo gDes non definito

    End Sub

Un suggerimento. Grazie

PM
Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2305
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 11:27
Giovedì, 21/05/2009
A mio parere usi un sistema errato

Sempre se non mi sto sbagliando

Vuoi che il programma ti disegna delle label in modo dinamico
mediante un array giusto?

se intendi questo ti faccio questo piccolo esempio
che potrebbe tornarti utile

Codice sorgente - presumibilmente VB.NET

  1. 'Array Pubblico
  2. Public arraylabel As New List(Of Label)
  3.    
  4.  
  5. 'Sub per il drawing delle label
  6. 'mediante gli elementi contenuti nell'array
  7.  
  8.     Private Sub stampa()
  9.  
  10.         For i As Integer = 0 To arraylabel.Count - 1
  11.             Me.Controls.Add(arraylabel(i))
  12.         Next
  13.  
  14.     End Sub
  15.  
  16.  
  17.  'Funzione per creare una label
  18.     Private Sub crealabel(ByVal testo As String, ByVal posizione As Point)
  19.  
  20.         Dim lbl As New Label
  21.  
  22.         lbl.Text = testo
  23.         lbl.Location = posizione
  24.  
  25.         arraylabel.Add(lbl)
  26.  
  27.     End Sub
  28.  
  29.  
  30. 'esempio al puslante 1
  31. 'gli invii alla funzione crealabel i parametri necessari
  32.  
  33.     Private Sub Button1_Click()
  34.         crealabel("Test", New Point(CInt(TextBox1.Text), CInt(TextBox2.Text)))
  35.     End Sub
  36.  
  37. 'da un'altro pulsante esempio
  38. 'fai disegnare sul forum tutte le label contenute.
  39.  
  40.     Private Sub Button2_Click()
  41.         stampa()
  42.     End Sub



Spero di esserti stato d'aiuto
e capito bene cosa intendevi.


https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM
Avatar
Alfonso (Normal User)
Rookie


Messaggi: 37
Iscritto: 16/05/2009

Segnala al moderatore
Postato alle 12:46
Giovedì, 21/05/2009
Grazie Thejuster

Hai capito benissimo ed risolto il mio problema

Cordialità

PM
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 20:00
Giovedì, 21/05/2009
P.S.: gli errori erano dovuti al fatto che non puoi usare un costruttore New su un array. Lo puoi fare solo inizializzando un singolo elemento.

PM