Listbox con oggetti

di il
4 risposte

Listbox con oggetti

Ciao a tutti,
sto cercando di inserire un oggetto in una listbox. L'oggetto è costituito da un controllo linklabel e da due stringhe.
Il codice:
Dim prog As New LinkLabel
prog.Text = "C721"
prog.Links.Add(0, Len(prog.Text), "www.google.co")
Dim elem = New CustomElem With {.Progetto = prog, .Descrizione = "JK Rowling"} '.ToControls ', .Descrizione = "JK Rowling", .Note = "5.99D"}
ListBox1.Items.Add(elem)

Dim olink As New LinkLabel
olink.Text = "Google"
olink.Links.Add(0, Len(olink.Text), "www.google.co")
ListBox1.Controls.Add(olink)
La classe:
Public Class CustomElem
Public Progetto As LinkLabel = Nothing
Public Descrizione As String = ""
Public Sub New(ByVal a As Control, ByVal b As String)

Progetto = a
Descrizione = b

End Sub
End class
Il risultato è che la label olink viene visualizzata correttamente mentre la label prog No. Al posto di prog si visualizza "customElem".
Sicuramente c'è un errore nella classe ma che però non sono riuscito a risolvere con gli esempi che ho trovato su internet.

Come posso fare? GRAZIE.

4 Risposte

  • Re: Listbox con oggetti

    Ma cosa dovrebbe visualizzare?

    Con l'override di ToString visualizzi, ad esempio, la Descrizione ma non so se è quello che ti aspetti
    
        Public Overrides Function ToString() As String
            Return Descrizione
        End Function
       
  • Re: Listbox con oggetti

    Effettivamente avevo provato con ToString ma come dicevi tu visualizzi il testo non il controllo LinkLabel a cui poi puoi associare tutti i metodi ad esso collegati.
  • Re: Listbox con oggetti

    Se ho capito bene, a te serve un User Control derivato da un LinkLabel
  • Re: Listbox con oggetti

    Questo è il risultato che ottengo ora:


    Come vedi la scritta Trasparentform.Customelem non è uguale al LinkLabel1 che vedi sotto. La differenza è che la listbox1, che non vedi perchè trasparente, non visualizza la scritta C721 correttamente.
    Sinceramente non so cosa intendi per user control derivata.

    Grazie.
Devi accedere o registrarti per scrivere nel forum
4 risposte