Newsgroup: it.comp.lang.visual-basic
Titolo: Controlli a run-time...

Salve!
Dunque, stando a quel( poco ) che ne so, per caricare dei controlli a
run-time del medesimo tipo, la soluzione più semplice è fare un array di
controlli contenente un solo controllo a design-time e poi con una serie di
"load..." caricare gli altri.
Ricordo male? Spero di no.
Supponiamo che mi ricordi bene... rimane un problema.
Oltre a dover caricare questi controlli, devo far in modo di
aggiungere *UN* solo controllo _interno_ al controllo appena
creato.
Rendiamo le cose più semplici, e spieghiamo meglio:
Io devo caricare vari tab a runtime, poi dentro ogni tab ci
devo mettere una ListBox.
Se ricordo bene come caricare i tab, come faccio poi ad
aggiungere la listbox?
Prima che mi metto a scrivere, qualche consiglio/delucidazione?
Ciao
Andrea

 ha scritto nel messaggio
news:b95srh$g1qa8$1...@ID-170738.news.dfncis.de...



ti posto un pezzo di codice dove aggiungo delle label
a un frame, tutto creato a run time...
Dim myFrame() As VB.Frame
Dim myLabel() As VB.Label
Dim myTxt() As VB.TextBox
Dim iFrame As Long
Dim iLabel As Long
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''
'inizio la creazione dinamica del form
iFrame = 0
iLabel = 0
    'aggiungo il frame
    ReDim Preserve myFrame(iFrame)
    Set myFrame(iFrame) = Me.Controls.Add("VB.Frame", "myFrame" & iFrame,
Me)
    'aggiungo la prima lbel
    ReDim Preserve myLabel(iLabel)
    Set myLabel(iLabel) = Me.Controls.Add("VB.Label", "myLabel" & iLabel,
Me)
    With myLabel(iLabel)
        Set .Container = myFrame(iFrame)
        .Caption = CStr(myRsAree("CodiceAreaLADV")) & " - " &
CStr(myRsAree("DescrizioneAreaLADV")) & " - Peso area: " &
CStr(myRsAree("PesoAreaLADV"))
        .Visible = True
        .BorderStyle = 1
        .Alignment = 2
        .FontSize = 12
        .Move 120, 240, (Me.Width - 1920), 900
    End With
    iLabel = iLabel + 1
    'aggiungo la seconda label
    ReDim Preserve myLabel(iLabel)
    Set myLabel(iLabel) = Me.Controls.Add("VB.Label", "myLabel" & iLabel,
Me)
    With myLabel(iLabel)
        Set .Container = myFrame(iFrame)
        .Caption = "Valore" & vbCrLf & "numerico"
        .Alignment = 2
        .Visible = True
        .BorderStyle = 1
        .FontSize = 12
        .Move Me.Width - 1800, 240, ((Me.Width - 360) - (Me.Width - 1800)),
900
    End With
-- 
bye BlackMagic
ICQ# 85485468

 Dim myTxt() As VB.TextBox
[SNIP]
Questo sistema pero' deve essere valutato con attenzione perche' ha un
grosso svantaggio rispetto alle matrici di controlli "vecchia maniera": non
e' possibile dichiarare l'array 'WithEvents', per cui se nei controlli
generati hai necessita' di gestire un qualunque evento, non puoi e sei
obbligato a ritornare al meccanismo con il primo in design e gli altri a
runtime...
Ciao
-- 
Luca Dormio - 
luca....@tin.it
________________________________
"Marty, non stai ragionando in maniera quadridimensionale"
Dr. Emmett L. Brown

 evento, non puoi
Falso....
Non č facile, ma puoi
Salutoni
Sergio

 Non è facile, ma puoi
Che ci fosse un qualche tapullone per far funzionare la cosa, mi sovviene,
ma mi pare anche di ricordare che, come dicono in Ancona, fosse uno sbocco
di sangue rispetto al vecchio approccio "quick&dirty"



effettivamente il procedimento è "leggermente" più articolato
di quello che si può seguire creando la matrice a design time,
(se hai la possibilità prova a dare un occhio al capitolo 9 del
libro di F.Balena su vb6)
