Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    758
    Credo che a chi ha deciso di far fuori la vecchia e cara proprietà ItemData dalle ComboBox e ListBox fischieranno spesso le orecchie.

    In VB .NET questo problema può essere risolto in diversi modi, il più semplice dei quali mi sembra quello di ricorrere ad una struttura di dati.
    In pratica occorre creare una struttura formata da due campi, nel tuo caso id e nome
    codice:
        Public Structure IdNome
            Public Id As Integer
            Public Nome As String
        End Structure
    e popolare la ListBox con elementi di questa struttura
    codice:
            Dim oIdNome As IdNome
    
            oIdNome.Id = ...
            oIdNome.Nome = ...
            ListBox1.Items.Add(oIdNome)
    	...
    Per fare in modo che la ListBox elenchi solo i campi Nome occorre effettuare l'overriding del metodo ToString, cosa che può essere fatta anche all'interno della struttura
    codice:
        Public Structure IdNome
            Public Id As Integer
            Public Nome As String
            
    	Public Overrides Function ToString() As String
                Return Nome
            End Function
        End Structure
    Al momento della selezione di un elemento nella ListBox, si può riportare l'elemento selezionato nella strutttura
    codice:
            oIdNome = CType(ListBox1.Items(ListBox1.SelectedIndex), oIdNome)
    con la opportuna conversione di tipo.

    Spero ti sia utile.

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    758
    Eh, non esageriamo
    Come ti dicevo non è l'unico modo. Per esempio qui puoi trovare una soluzione diversa e stilisticamente forse migliore.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.