Newsgroup: it.comp.lang.visual-basic
Titolo: VB.NET - Collezioni da usare in DesignTime ... non funzionano

Salve a tutti.
Avete presente un controllo tipo la ListView e le sue Columns ?
Se inserisco una ListView in una form e clicco sulla collezione Columns
riesco visivamente ad inserire le colonne e nel codice viene creato la
Listview1 e tutte le varie ColumnHeader1, ColumnHeader2 ... ecc, e ad un
certo punto vedo:
Me.ListView1.Columns.AddRange(New System.Windows.Forms.ColumnHeader()
{Me.ColumnHeader1, Me.ColumnHeader2, Me.ColumnHeader3, Me.ColumnHeader4})
Ho creato un controllo che ha in sè una collezione per inserire n oggetti,
ma se in DesignTime cerco di inserire questi oggetti non compare niente.
Nel codice l'oggetto padre e tutti gli oggetti figli vengono creati, ma il
problema penso stia nel fatto che non vedo la riga che aggiunge gli oggetti
figlio al padre: AddRange(new ....() {....})
Qualcuno mi sa aiutare ?
non so dove battere il capo.

 figlio al padre: AddRange(new ....() {....})
hai inserito ?:
 Me.LV.View = View.Details
due esempi:
1-
 Dim columnheader(3) As ColumnHeader
        Dim i As Int32
        For i = 0 To 3
            columnheader(i) = New ColumnHeader()
            columnheader(i).Text = "Name: " & i
        Next
        Me.LV.Columns.AddRange(columnheader)
2-
Dim columnheader() As ColumnHeader = {New ColumnHeader(), New
ColumnHeader()}
        Me.LV.Columns.AddRange(columnheader)
Il come inserire nel controllo che ha in sč una collezione per inserire n
oggetti ..............
giuseppeD

 oggetti ..............
Forse mi sono spiegato male: se in DesignTime in una ListView (ListView1)
aggiungi + colonne, nel codice compare quanto segue:
Me.ListView1.Columns.AddRange(New System.Windows.Forms.ColumnHeader()
{Me.ColumnHeader1, Me.ColumnHeader2, Me.ColumnHeader3, Me.ColumnHeader4})
Me.ListView1.Font = New System.Drawing.Font("Tahoma", 8.25!,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point,
CType(0, Byte))
Me.ListView1.FullRowSelect = True
Me.ListView1.Location = New System.Drawing.Point(8, 56)
Me.ListView1.Name
 = "ListView1"
Me.ListView1.Size = New System.Drawing.Size(792, 208)
Me.ListView1.TabIndex = 0
Me.ListView1.View = System.Windows.Forms.View.Details
'
'ColumnHeader1
'
Me.ColumnHeader1.Text = "Colonna 1"
Me.ColumnHeader1.Width = 100
'
'ColumnHeader2
'
Me.ColumnHeader2.Text = "Colonna 2"
Me.ColumnHeader2.Width = 100
.
.
.
Se creo io un controllo PERSONALIZZATO con una collezione (TIPO la
collezione ColumnHeaderCollection), quando vado ad aggiungere tale controllo
nella form ed inserisco gli oggetti figlio (in designtime) non mi crea (nel
codice) la riga di AddRange e quindi nella form all'interno del mio
controllo, non compare niente. Se aggiungo a mano tale riga funziona tutto
anche in designtime


Il seguente in DesignTime funziona nella form:
  Friend WithEvents ListView1 As System.Windows.Forms.ListView
    Dim c1 As New System.Windows.Forms.ColumnHeader()
    Dim c2 As New System.Windows.Forms.ColumnHeader()
    Dim c3 As New System.Windows.Forms.ColumnHeader()
    <System.Diagnostics.DebuggerStepThrough()> Private Sub
InitializeComponent()
        Me.ListView1 = New System.Windows.Forms.ListView()
        Me.SuspendLayout()
        '
        'ListView1
        Me.ListView1.Columns.AddRange(New
System.Windows.Forms.ColumnHeader() {c1, c2, c3})
        Me.ListView1.Font = New System.Drawing.Font("Tahoma", 8.25!,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point,
CType(0, Byte))
        Me.ListView1.FullRowSelect = True
        Me.ListView1.Location = New System.Drawing.Point(8, 56)
 
Me.ListView1.Name
 = "ListView1"
        Me.ListView1.Size = New System.Drawing.Size(792, 208)
        Me.ListView1.TabIndex = 0
        Me.ListView1.View = System.Windows.Forms.View.Details
        '
        'ColumnHeader1
        '
        c1.Text = "Colonna 1"
        c1.Width = 100
        '
        'ColumnHeader2
        '
        c2.Text = "Colonna 2"
        c2.Width = 100
        '
        'ColumnHeader3
        '
        c3.Text = "Colonna 3"
        c3.Width = 100
giuseppeD

 Sono perplesso
Se crei una form, e ci infili una listview, ci crei delle colonne (tutto
questo in View Designer, cioè la modalità grafica con cui modifichi la
posizione, il colore ecc dei controllo in una form o usercontrol, ecc o
della form stessa) poi in View Code ottieni ad esempio il codice che segue:

preceduto da:
'NOTE: The following procedure is required by the Windows Form Designer
'It can be modified using the Windows Form Designer.
'Do not modify it using the code editor.
Tutto il codice sopra descritto viene generato da 
VB.NET
 (spero che su
questo non ci siamo dubbi).
La mia domanda era la seguente, ma perchè se io mi creo un controllo
PERSONALIZZATO con una collezione di oggetti (graficamente visibili), metto
tale controllo in una form e aggiungo n oggetti figli, 
vb.net
 mi aggiunge
tutto tranne:
Me."MioControllo"."MiaCollezione".AddRange(New "OggettiFiglio"() {Filgio1,
Filgio2, Figlio3}) ?


Non ricordo di aver costruito ad oggi controlli personalizzati, Assembly dll
si.
Se costruisci un controllo e lo aggiungi, penso aggiungi il controllo con
tutti i figli.
Mi sembra che tenti di add il controllo e i figli a parte ?
giuseppeD

Ti rigrazio, mi sa che siamo sintonizzati su due frequenze diverse.