18 messaggi dal 30 luglio 2019
Buongiorno ho cercato nel forum prima di postare ma non ho trovato ciò che mi serve ma potrebbe essermi sfuggito, pertanto chiedo scusa se la mia domanda vi sembrerà banale.

Ho una combobox che viene caricata con una lista di oggetti (Group con 4 campi tra i quali c'è GroupName e IdGroup), di cui mostro solo un campo e mi serve poi conoscere il corrispondente valore posto in ValueMember.
La combobox è caricata e settata come segue nel load del form che la contiene:
      cbGroupName.DataSource = GroupDBList.GetGroupListbyName  ' fornisce una lista di oggetti tipo group
      cbGroupName.DisplayMember = "GroupName"
      cbGroupName.ValueMember = "Idgroup"

e mostra il primo elemento nella combobox correttamente.

Il form ha due proprietà public (ma devo decidere quale lasciare in base al funzionamento):
  
Public currentidgroup As Integer
Public Group As GroupCS

e viene aperto da altro form che gli passa sia un valore per currentidgroup che un oggetto dello stesso tipo in group.
Dopo aver caricato la combo vorrei poter selezionare l'elemento passato. Ho provato dapprima così:
 
  If currentidgroup  > 0 Then
         cbGroupName.SelectedItem = currentidgroup
  endif

ma l'evento:
 cbGroupName_SelectedIndexChanged 
non si verifica e rimane selezionato sempre e solo il primo elemento nella combo.

Ho provato allora con la proprietà:
 
cbGroupName.SelectedValue = currentidgroup

ma non mi risolve nulla.
Alla fine ho provato con il seguente codice:
 
  If Group IsNot Nothing AndAlso Group.IdGroup > 0 Then
             cbGroupName.SelectedItem = Group
  Endif

ma senza soluzione di sorta. E nessuna scelta mi da errore per cui sembrerebbero tutte corrette ma nessuna mi mostra poi il valore che vorrei.

Vi chiedo cortesemente come si fa a selezionare un elemento di una combobox tramite codice? Qual'è il modo per farlo correttamente?

Grazie per il vostro prezioso aiuto.

PS: sto usando VS2012 ed il relativo testo di bochicchio ma non trovo quanto mi serve.
Modificato da alip1 il 12 aprile 2021 14:48 -

Alip1
135 messaggi dal 01 febbraio 2017
alip1 ha scritto:
Buongiorno ho cercato nel forum prima di postare ma non ho trovato ciò che mi serve ma potrebbe essermi sfuggito, pertanto chiedo scusa se la mia domanda vi sembrerà banale.

Ho una combobox che viene caricata con una lista di oggetti (Group con 4 campi tra i quali c'è GroupName e IdGroup), di cui mostro solo un campo e mi serve poi conoscere il corrispondente valore posto in ValueMember.
La combobox è caricata e settata come segue nel load del form che la contiene:
      cbGroupName.DataSource = GroupDBList.GetGroupListbyName  ' fornisce una lista di oggetti tipo group
      cbGroupName.DisplayMember = "GroupName"
      cbGroupName.ValueMember = "Idgroup"

e mostra il primo elemento nella combobox correttamente.

Il form ha due proprietà public (ma devo decidere quale lasciare in base al funzionamento):
  
Public currentidgroup As Integer
Public Group As GroupCS

e viene aperto da altro form che gli passa sia un valore per currentidgroup che un oggetto dello stesso tipo in group.
Dopo aver caricato la combo vorrei poter selezionare l'elemento passato. Ho provato dapprima così:
 
  If currentidgroup  > 0 Then
         cbGroupName.SelectedItem = currentidgroup
  endif

ma l'evento:
 cbGroupName_SelectedIndexChanged 
non si verifica e rimane selezionato sempre e solo il primo elemento nella combo.

Ho provato allora con la proprietà:
 
cbGroupName.SelectedValue = currentidgroup

ma non mi risolve nulla.
Alla fine ho provato con il seguente codice:
 
  If Group IsNot Nothing AndAlso Group.IdGroup > 0 Then
             cbGroupName.SelectedItem = Group
  Endif

ma senza soluzione di sorta. E nessuna scelta mi da errore per cui sembrerebbero tutte corrette ma nessuna mi mostra poi il valore che vorrei.

Vi chiedo cortesemente come si fa a selezionare un elemento di una combobox tramite codice? Qual'è il modo per farlo correttamente?

Grazie per il vostro prezioso aiuto.

PS: sto usando VS2012 ed il relativo testo di bochicchio ma non trovo quanto mi serve.
Modificato da alip1 il 12 aprile 2021 14:48 -

Ciao, prova a settare l'indice, non ricordo se si chiama DisplayIndex o SelectedIndex la proprietà relativa, sono un pò arrugginito.
Gino.

UNSTRING identifier-1 id-2 id-3
DELIMITED BY [ALL] OR [ALL] literal-1 lit-2
INTO {id-4 [DELIMITER IN id-5]
[COUNT IN id-6]}
[WITH POINTER id-7]
[TALLYING IN id-8]
[ON OVERFLOW imperative-statement-1]
[NOT ON OVERFLOW imper-2]
[END-UNSTRING]

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.