.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
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
-
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 -
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-
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
-