2009-12-04 3 views
1

Étant donné le code suivant, comment est-ce que je reçois une ArguementOutOfRangeException?Définition de l'élément SelectedIndex d'une zone de liste déroulante thrashes ArgumentOutOfRangeException

if (comboBox1.Items.Count > 0) 
{ 
    comboBox1.SelectedIndex = 0; 
} 

Ce code est dans mon événement de chargement de formulaires. Je sais que la zone de liste modifiable contient des éléments, mais je n'arrive pas à définir l'index sélectionné. MSDN indique que l'exception ArguementOutOfRangeException est levée si l'index spécifié est inférieur ou égal à -2 ou s'il est supérieur ou égal au nombre d'éléments de la liste déroulante.

L'application de test rapide que je viens d'écrire ne présente pas le même problème - que se passe-t-il?

+0

Je pense que plus de code est requis. Il est clair que si vous avez créé une application de test avec le même code et qu'elle n'a pas généré le problème, l'autre code est responsable. – BlueMonkMN

+1

assurez-vous que votre combo est lié à la source de données ou vous avez inséré le ListItem avant d'appeler ce code et il retournera -1 si aucun élément n'est sélectionné – Adeel

+0

peut-être qu'il n'est pas encore rendu? Pouvez-vous faire cet appel sous un bouton à la place sous le formulaire de chargement. – RvdK

Répondre

2

Ne suis-je pas tout à fait l'idiot. L'événement de changement d'index sélectionné était en train de se déclencher, et dans ce code une liste déroulante différente avait son index selectedIndex - mais avec certaines données il n'était pas rempli, et il n'y avait pas de vérification d'erreur basique avant de définir l'index selected.

Soupir.

Questions connexes