.net combobox affecter valeur suite selection

Bonjour,

je developpe sous visual express 2010 en vb.net (je débute).

j'ai une form qui contient une combobox me permettant de sélectionner un pays parmi la liste proposée :

exemple : Allemagne, Angleterre, Japon...(soit plus de 220 pays)

La pays selectionné me permettra de renvoyer un code pays correspondant :

exemple : "DE" pour "Allemagne"

J'ai déja pensé à If ou Select Case mais c'est long à coder car on doit taper les conditions pour chaque pays.

j'aurais souhaité coller dans mon code directement les correspondances comme présentées ci dessous et y faire référence par un code mais je ne sais pas comment faire :

Allemagne = DE
Angleterre = UK
Espagne = ES
...

D'avance merci

2 réponses

  1. Lu'

    Tu peut essayer de faire un tableau de correspondance.

    Tu créer une table pays

    Dim pays as string(DE,FR,UK,...)
    Dim pays_selectionner as string

    Ensuite tu test la valeur de ta combo

    pays_selectionner = pays(combobox.Items)

    Essaye pour voir
    0
    1. Le plus simple serait de passer par une Base de donnée
      0
  2. Bonjour,

    Tant qu'à faire, pourquoi ne pas bien faire ?

    Enfin si le travail ne t'effrait pas, il y a l'option de créer
    une ComboBox multi-colonnes dans laquelle tu pourra
    insérer ton code de Pays, il sera de ce fait, facilement
    récupérable lors de la sélection.

    Voici ici pour la fabrication :

    https://olsimare.developpez.com/articles/vbnet/combobox/multicolumncombobox/

    Cdt

    Lupin
    0
    1. re:

      Je viens de tester à l'instant sous .NET 2008

      et il ne te sera pas nécessaire de dérivé le combobox standard.

      tu pourras jouer avec la propriété [ValueMember] versus la propriété [DisplayMember].

      
      ' Constructeur du formulaire   
          Public Sub New()   
      
              ' Cet appel est requis par le Concepteur Windows Form.   
              InitializeComponent()   
      
              ' Ajoutez une initialisation quelconque après l'appel InitializeComponent().   
      
        Dim dt As New DataTable   
        dt.Columns.Add("C1")   
        dt.Columns.Add("C2")   
        dt.Columns.Add("C3")   
        dt.Rows.Add("")   
        dt.Rows.Add("ID1", "PasAffiché1", "Affiché1")   
        dt.Rows.Add("ID2", "PasAffiché2", "Affiché2")   
        dt.Rows.Add("ID3", "PasAffiché3", "Affiché3")   
        dt.Rows.Add("ID4", "PasAffiché4", "Affiché4")   
        Me.cbx_Perso.DataSource = dt   
      
        Me.cbx_Perso.ValueMember = "C1"   
        Me.cbx_Perso.DisplayMember = "C3"   
        Me.cbx_Perso.DropDownStyle = ComboBoxStyle.DropDown   
      
      End Sub   
      '   
      
      ' Évènement du combobox   
      
      Private Sub cbx_Perso_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbx_Perso.SelectedIndexChanged   
      
        Dim strTexte As New System.Text.StringBuilder 
              Dim dv As DataRowView = CType(Me.cbx_Perso.SelectedItem, DataRowView) 
      
              strTexte.AppendLine("Valeur affichée du combo = " & Me.cbx_Perso.Text) 
              strTexte.AppendLine("Valeur réelle du combo = " & Me.cbx_Perso.SelectedValue.ToString()) 
              strTexte.AppendLine("Objet selectionnée du combo = " & Me.cbx_Perso.SelectedItem.ToString) 
              strTexte.AppendLine("Contenu : Col1 = " & dv(0).ToString & " - Col2 = " & dv(1).ToString & " - Col3 = " & dv(2).ToString) 
      
              MessageBox.Show(strTexte.ToString) 
      
      
      End Sub   
      '   
      


      Avec cette option, tu devrais résoudre facilement.

      Cdt

      Lupin
      0