+ Rispondi al messaggio
Pagina 2 di 2 primaprima 12
Visualizzazione dei risultati da 11 a 17 su 17

combobox

  1. #11
    gnappi non è in linea Scolaretto
    Quote Originariamente inviato da SirJo Visualizza il messaggio
    prova questo codice e vedi se riesci a capire qualcosa, può essere un inizio per studiarsi un po' di OOP
    il codice si poteva fare ancora più compatto ma ho preferito fare così per una migliore leggibilità

        Private Class ufficioCls
            Public ID As String = ""
            Public Comune As String = ""
            Public Via As String = ""
            Public Overrides Function ToString() As String
                Return Comune & " - " & Via & " (" & ID & ")"
            End Function
        End Class
    
        Sub eUffici()
            Dim strSql As String = "SELECT id,Comune,via FROM uffici ORDER BY comune"
            Dim cmd As New OleDbCommand(strSql, cnn)
            Dim dr As OleDbDataReader
            Try
                cnn.Open()
                dr = cmd.ExecuteReader
                While dr.Read
                    Dim ufficio = New ufficioCls
                    ufficio.ID = dr(0)
                    ufficio.Comune = dr(1)
                    ufficio.Via = dr(2)
                    uffici.elencoUffici.Items.Add(ufficio)
                End While
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            Finally
                cnn.Close()
            End Try
        End Sub
    
    per spiegazioni chiedi pure
    Penso di aver capito parte del codice ,ma mi resta completamente oscura la funzione
        Public Overrides Function ToString() As String
            Return Comune & " - " & Via & " (" & ID & ")"
        End Function
    
    Ne vedo gli effetti nella combobox, ma dove e quando viene invocata?
    Grazie.

    P.S.: superfluo dire che funziona tutto alla perfezione!

  2. #12
    L'avatar di SirJo
    SirJo non è in linea Scolaretto
    Se al tuo ComboBox aggiungi delle stringhe (come facevi tu con Items.Add) lui sa benissimo cosa deve mostrare all'utente: le stringhe.
    Ma se al combobox aggiungi degli oggetti (abbiamo aggiunto oggetti "ufficioCls") lui non sa cosa deve mostrare all'utente, e quindi, per ogni oggetto aggiunto, chiama la routine ToString di questo oggetto e mostra a video quello che gli ritorna questa routine.
    Dentro la classe ufficioCls abbiamo quindi dichiarato la routine ToString (Public perchè deve essere visibile dall'esterno della classe, Overrides perchè "sovrascrive" la routine standard, Function perchè deve ritornare un valore, String perchè deve ritornare una stringa) che verrà chiamata dal tuo combobox.
    Se provi (ad esempio) a cambiare la linea in
    Return Comune & " + " & Via & " {" & ID & "}"
    vedrai nel tuo combobox che apparirà proprio in questo modo

    Ora però devi concentrarti sull'evento elencoUffici_SelectedIndexChanged e non basarti sulla proprietà Text per ricavarti la voce selezionata dall'utente, ma ricavarti l'oggetto vero e proprio ed accedere alle sue proprietà, tra cui l'ID che ti serve

    Prova, eventualmente chiedi
    Ultima modifica di SirJo; 28-06-2021 13:49 

  3. #13
    gnappi non è in linea Scolaretto
    Grazie della tua lezione.
    Ci proverò, mi impegnerò ,ma la vedo difficile...
    Comunque, ho già imparato qualcosa: che esiste la OOP,di cui tutti ne parliamo, ma poi sono in pochi a praticarla!!

  4. #14
    Sgrubak non è in linea Scribacchino
    A corollario di quanto spiegato da Sirjo, per ricavare l'oggetto selezionato puoi sfruttare la proprietà SelectedItem. Effettui il cast verso il tipo "ufficioCls" ed ottenuto l'oggetto, ne sfrutti le proprietà. Ad esempio:
    Dim selezioneCombo As ufficioCls
    selezioneCombo = DirectCast(combobox.SelectedItem, ufficiCls)
    Dim idStr as String = selezioneCombo.ID
    

  5. #15
    L'avatar di SirJo
    SirJo non è in linea Scolaretto
    Quote Originariamente inviato da gnappi Visualizza il messaggio
    Grazie della tua lezione.
    Ci proverò, mi impegnerò ,ma la vedo difficile...
    Comunque, ho già imparato qualcosa: che esiste la OOP,di cui tutti ne parliamo, ma poi sono in pochi a praticarla!!
    comincia a leggere qui: Guida al Visual Basic .NET - Piero Tofy.it

  6. #16
    gnappi non è in linea Scolaretto
    Quote Originariamente inviato da Sgrubak Visualizza il messaggio
    A corollario di quanto spiegato da Sirjo, per ricavare l'oggetto selezionato puoi sfruttare la proprietà SelectedItem. Effettui il cast verso il tipo "ufficioCls" ed ottenuto l'oggetto, ne sfrutti le proprietà. Ad esempio:
    Dim selezioneCombo As ufficioCls
    selezioneCombo = DirectCast(combobox.SelectedItem, ufficiCls)
    Dim idStr as String = selezioneCombo.ID
    
    Ho adattato il tuo codice e tutto funziona alla perfezione.
    Grazie.

  7. #17
    gnappi non è in linea Scolaretto
    Quote Originariamente inviato da SirJo Visualizza il messaggio
    Ho già iniziato a leggere. Mi sembra difficile, ma ce la metterò tutta per capirci almeno qualcosa.
    Grazie,Sirio.

+ Rispondi al messaggio
Pagina 2 di 2 primaprima 12

Potrebbero interessarti anche ...

  1. popolare combobox da combobox html
    Da Sn0rky nel forum Visual Basic .Net
    Risposte: 3
    Ultimo Post: 31-08-2019, 13:35
  2. contenuto combobox che dipende da un'altra combobox
    Da maxs84 nel forum Microsoft Access
    Risposte: 6
    Ultimo Post: 22-12-2016, 11:58
  3. Combobox
    Da Frankq nel forum Visual Basic 6
    Risposte: 3
    Ultimo Post: 02-12-2012, 21:21
  4. ComboBox
    Da Maxxim nel forum Microsoft Word
    Risposte: 13
    Ultimo Post: 28-03-2010, 23:01
  5. [EXCEL]Combobox attivate da Combobox Dinamiche
    Da arimans nel forum Microsoft Excel
    Risposte: 6
    Ultimo Post: 05-04-2008, 11:25