Newsgroup: it.comp.lang.visual-basic
Titolo: User Control e ListView, perchè questo codice non va?

Salve a tutti, premetto sono agli inizi.
In un progetto ho creato una User Control (grazie al suggerimento di Abramo)
e c'ho messo dentro una ListView (ListView1). Poi ho inserito il seguente
codice:
Property Items(ByVal displayIndex As Integer) As ListViewItem
    Get
        Return ListView1.Items(displayIndex)
    End Get
    Set(ByVal Value As ListViewItem)
        ListView1.Items.Add(Value)
    End Set
End Property
Funziona parzialmente, dalla form dove vado ad inserire il controllo
(usercontrol1) se digito:
usercontrol1.items(1).text             tutto ok
 invece
usercontrol1.items.add              non funziona
Una mezza idea me la sono fatta, ma so come risolvere il problema
help !

 usercontrol1.items.add              non funziona
Beh, mi sembra che non esponga il metood add, ma un property set, quindi
Set usercontrol1.items = Nuovo_Item
(se ho ben capito cosa vuoi fare...)
Però non mi torna il fatto che sia un Set e che dichiari un ByVal as
ListViewItem...
Forse si usa senza il Set davanti....
Mah..
Ciao
Alberto

 usercontrol1.items.add              non funziona
beh la property che hai postato non parla di add.... diciamo che nella tua
classe, per aggiungere un membro alla collezione, bisognerebbe scrivere una cosa
tipo:
usercontrol1.items(uncodiceacasotantolafunzionenonlousa) =
oggettoditipolistviewitem
--
Salutoni
Sergio

 Forse si usa senza il Set davanti....
forse l'informazione che tutto il codice si riferisce a .net ti aiuta a
comprendere?
Netslaker non l'ha detto, ma quello postato è il codice per aggiungere le
property nelle classi .net
--
Salutoni
Sergio

 usercontrol1.items.add              non funziona
Temo tu stia facendo confusione tra gli oggetti, la proprieta' predefinita
Item di Items ecc...
La property fatta cosi' come e' restituisce un riferimento ad un oggetto
ListViewItem, ma quello che poi vuoi usare e' il metodo .Add dell'oggetto
ListViewItemCollection, del quale poi immagino tu voglia anche utilizzare
anche le altre (Count ecc...)
Fermo restando che il suggerimento che ti hanno gia' dato di derivare
direttamente una classe da ListView, invece di usare il meccanismo di delega
"alla VB6" che stai usando adesso, e' il migliore, se vuoi avere una
property Items del tutto analoga a quella di un LW originale, dovresti
definirla cosi':
Public ReadOnly Property Items As ListViewItemCollection
    Get
        Return ListView1.Items
    End Get
End Property
ora, esponendo direttamente l'insieme, ricevi "gratuitamente" i membri di
quest'ultimo, e quindi puoi fare riferimento a .Item(x), .Add e tutto quello
che ti serve... se guardi le risposte di Allanon al tuo thread precedente
vedrai che ti spiegava la stessa cosa
Ciao
--
Luca Dormio - 
luca....@tin.it
________________________________
"Marty, non stai ragionando in maniera quadridimensionale"
Dr. Emmett L. Brown

 a comprendere?
Beh, diciamo di sì...
Alberto

Si scusate stavo parlando di .NET

 ha scritto nel messaggio
news:b30c7m$1go6d2$1...@ID-138791.news.dfncis.de...

quindi quello che avevo inserito io dopo il readonly
WriteOnly Property Items(ByVal DispalyIndex As Integer) As ListViewItem
    Set(ByVal Value As ListViewItem)
        LW.Items.Add(Value)
    End Set
End Property
non serve a niente !
grazie mille


 non serve a niente !
Non solo non serve, e' proprio un sbagliata, perche' di nuovi stai scrivendo
una property Items che dovrebbe restituire l'insieme dei ListItems ma che in
realta' fa il lavoro della property Items.Item(Index), cioe' ti restituisce
un singolo ListItem
Come dicevo, stai confondendo l'insieme con la sua property predefinita...


 ha scritto nel messaggio
news:b30ejj$1h6hkp$1...@ID-138791.news.dfncis.de...
