.net combobox affecter valeur suite selection

sebcbien81 Messages postés 17 Statut Membre -  
 Utilisateur anonyme -
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. borisdu Messages postés 1939 Statut Membre 230
     
    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. borisdu Messages postés 1939 Statut Membre 230
       
      Le plus simple serait de passer par une Base de donnée
      0
  2. Utilisateur anonyme
     
    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. Utilisateur anonyme
       
      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