+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 7 su 7

Personalizzare combobox

  1. #1
    Sn0rky non è in linea Scolaretto
    al momento ho necessità di visualizzare in una combobox la lista, per esteso, delle province italiane ma, una volta selezionata, visualizzarne solo la sigla.
    ho ridotto la dimensione della combobox in modo che visualizzi poco più di due caratteri... e con un comando substring accorcio il testo visualizzato quando lascio la combobox!
    ora sto usando suggestappend per agevolare l'inserimento.. ma è agevole se posso vedere quel che scrivo! e con una combobox così piccola non so come fare, la "finestrella del suggerimento" è larga come la combobox e la si deve allargare a mano ogni volta!

    la lista delle provincie non è in un file esterno ed è scritta così:
    NOME, SIGLA (es. MILANO, MI)


    voi cosa consigliereste di fare?

    Private Sub ComboBox1_DropDownClosed(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.DropDownClosed
            If ComboBox1.Text.Length > 2 Then
                Dim SIGLA As String = ComboBox1.Text.Substring(ComboBox1.Text.Length - 2, 2)
                ComboBox1.Text = SIGLA
            Else
                Exit Sub
            End If
        End Sub
    
        Private Sub ComboBox1_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.Leave
            If ComboBox1.Text.Length > 2 Then
                Dim SIGLA As String = ComboBox1.Text.Substring(ComboBox1.Text.Length - 2, 2)
                ComboBox1.Text = SIGLA
            Else
                Exit Sub
            End If
        End Sub
    

  2. #2
    Sn0rky non è in linea Scolaretto
    rifaccio la domanda semplificandola (visto che non mi so spiegare tanto bene)
    nella combobox vorrei avere nella tendina i nomi delle province, così da cercarle meglio...
    ma poi vorrei visualizzare solo la sigla di quella provincia.
    per ora ho fatto come sopra, ma non esiste un modo di associare PROVINCIA -> SIGLA

    ?

  3. #3
    L'avatar di bumm
    bumm non è in linea Topo di biblioteca Ultimo blog: [VB2010] ComboBox ed Enumeratori
    Devi mettere i dati ( sigla, provincia) in una tabella e bindarla alla combo impostando il nome della regione come DisplayMember e la sigla come ValueMember. In questo modo nella combo verranno visualizzate le pegioni per esteso, ma potrai sempre recuperare la sigla( SelectedValue)
    ℹ️ Leggi di più su bumm ...

  4. #4
    Sn0rky non è in linea Scolaretto
    Quote Originariamente inviato da bumm Visualizza il messaggio
    Devi mettere i dati ( sigla, provincia) in una tabella e bindarla alla combo impostando il nome della regione come DisplayMember e la sigla come ValueMember. In questo modo nella combo verranno visualizzate le pegioni per esteso, ma potrai sempre recuperare la sigla( SelectedValue)
    tabella? spero si possa evitare un file esterno (vorrei avere solo l'eseguibile)
    quante righe può contenere la combobox? per l'accoppiata PROVINCIA - SIGLA non dovrei avere problemi.. ma dovrei usare le stesso metodo anche per l'accoppiata COMUNE - CODICE CATASTALE che conta più di 8000 righe!

  5. #5
    L'avatar di bumm
    bumm non è in linea Topo di biblioteca Ultimo blog: [VB2010] ComboBox ed Enumeratori
    sotto Tabella intendevo Datatable:

    Dim regions As New DataTable("regioni")
    regions.Columns.Add(New DataColumn("sigla"))
    regions.Columns.Add(New DataColumn("regione"))
    regions.LoadDataRow(New Object() {"BO", "BOLOGNA"}, True)
    regions.LoadDataRow(New Object() {"GE", "GENOVA"}, True)
    regions.LoadDataRow(New Object() {"MI", "MILANO"}, True)
    regions.LoadDataRow(New Object() {"NA", "NAPOLI"}, True)

    ComboBox1.DataSource = regions
    ComboBox1.DisplayMember = "regione"
    ComboBox1.ValueMember = "sigla"


    Naturalmente se accedi alla proprietà ComboBox1.SelectedValue, avrai la sigla della regione selezionata.

    spero si possa evitare un file esterno (vorrei avere solo l'eseguibile)
    secondo me e proprio il caso di averlo, visto che sono i dati che possono variare con tempo.

    P.S. se hai usato versione di framework 4 puoi fare anche in questo modo:

    Dim lst As New List(Of Tuple(Of String, String))
    lst.Add(Tuple.Create("BO", "BOLOGNA"))
    lst.Add(Tuple.Create("GE", "GENOVA"))
    lst.Add(Tuple.Create("MI", "MILANO"))
    lst.Add(Tuple.Create("NA", "NAPOLI"))

    ComboBox1.DataSource = lst
    ComboBox1.DisplayMember = "item2"
    ComboBox1.ValueMember = "item1"
    Ultima modifica di bumm; 18-05-2012 14:00 
    ℹ️ Leggi di più su bumm ...

  6. #6
    Sn0rky non è in linea Scolaretto
    sulla variabilità dei dati sono d'accordo, ma vorrei comunque provare qualcosa di diverso.
    la procedura di popolamento della combobox può avvenire richiamando una dll? cerco in giro qualche esempio.

    scusa se mi ripeto: con più di 8000 record da memorizzare/visualizzare la combobox ce la fa? perché altrimenti devo cambiar metodo

  7. #7
    L'avatar di bumm
    bumm non è in linea Topo di biblioteca Ultimo blog: [VB2010] ComboBox ed Enumeratori
    sulla variabilità dei dati sono d'accordo, ma vorrei comunque provare qualcosa di diverso.la procedura di popolamento della combobox può avvenire richiamando una dll? cerco in giro qualche esempio.
    e tra una dll o un file xml oppure un file criptato e/o binario che differenza fa?

    scusa se mi ripeto: con più di 8000 record da memorizzare/visualizzare la combobox ce la fa? perché altrimenti devo cambiar metodo
    non devi visualizzarli tutti. sarebbe un casino anche a cercare qualcosa tra 8k records. scegli prima regione, poi popoli secondo combobox con le provincie di quel regione, poi scegli la provincia, poi popoli comuni di quella provincia.
    ℹ️ Leggi di più su bumm ...

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. personalizzare F3
    Da muttley005 nel forum Microsoft Access
    Risposte: 10
    Ultimo Post: 25-02-2016, 15:22
  2. Personalizzare Msgbox
    Da roccolamann nel forum Microsoft Word
    Risposte: 3
    Ultimo Post: 17-10-2014, 13:16
  3. Personalizzare ColorBar
    Da BLUES nel forum Visual Basic .Net
    Risposte: 8
    Ultimo Post: 08-02-2011, 14:08
  4. Personalizzare le colonne del datagrid
    Da morgami nel forum Visual Basic 6
    Risposte: 7
    Ultimo Post: 20-12-2008, 20:35
  5. Personalizzare la MaskedTextbox
    Da cippalippa nel forum Visual Basic .Net
    Risposte: 0
    Ultimo Post: 25-05-2007, 08:47