2011-06-13 4 views
1

Quand je lance mon programme et obtenir pour me donner la valeur (Oui, j'ai les éléments dans la liste déroulante sélectionnée) dans la liste déroulante tout ce que je reçois est cela,Pourquoi la zone de liste déroulante renvoie-t-elle une valeur incorrecte?

System.Windows .Forms.ComboBox + ObjectCollection

Ceci est le code que je utilise

Dim name As String 
     name = cmbworld.Text 
     MsgBox(name) 

Toutes les idées?

P.S. Le code que j'ai utilisé pour insérer les valeurs est

cmbworld.Items.Clear() 

    If File.Exists(root + "\setting\world.txt") Then 
     For Each line As String In File.ReadLines(root + "\setting\world.txt") 
      If line.Length <> 0 Then 
       cmbworld.Items.Add(line) 
      End If 
     Next line 
    Else 
+1

Pouvez-vous envoyer le code dans lequel vous avez placé des valeurs dans la liste déroulante? – Tridus

+0

@Tridus C'est maintenant – Kuzon

Répondre

3

Ce code reproduire le problème:

Dim name As String 
    name = cmbworld.Items.ToString() 
    MsgBox(name) 

Vous avez un autre code quelque part qui est affectant la valeur de la propriété Text incorrectement. Vous devez indexer la collection Items. Par exemple:

cmbworld.Text = cmbWorld.Items(0) 
+0

Désolé, je suis toujours confus ... Comment puis-je obtenir la valeur de la combobox. J'ai assigné les éléments dans la liste déroulante avec le code ci-dessus. Est-ce une erreur dans ce code? Et où suis-je censé placer le "cmbworld.Text = cmbWorld.Items (0)" – Kuzon

+1

Non, le code que vous avez posté est bien. Je devais travailler à partir de l'hypothèse que vous avez un autre code dans votre programme qui a attribué la propriété Text erronée. Je ne sais pas si vous le faites, c'était une supposition. La seule chose qui a du sens. Décochez la réponse si cela ne vous aide pas. –

+0

Cela fonctionne maintenant merci :) – Kuzon

3

Le code que vous publiez ne peut pas être ce qui ne fonctionne pas dans votre code. En prenant votre exemple, j'obtiens un message propre avec une ligne de données de mon fichier texte.

La seule façon que je reçois votre message est quand je fais ce qui suit:

MessageBox.Show(cmbworld.Items.ToString) 

Je mettrais un débogueur d'arrêt sur cette ligne MsgBox et vérifier les valeurs.

0

Vous utilisez la mauvaise propriété, utilisez SelectedText.

cmbworld.SelectedText

Questions connexes