2010-04-21 4 views
0

J'ai donc un combobox - le code de concepteur:problème de la population Combobox

this.cmbStatusBox.Items.AddRange(new object[] { 
    "Ordered", 
    "Cooking", 
    "In-transit", 
    "Delivered"}); 

Le code formload:

if (mainForm.boolEdit == true) 
    { 
     this.cmbStatusBox.Items.AddRange(new object[] { 
     "Cooking", 
     "In-transit", 
     "Delivered"}); 
    } 
    else 
    { 
     this.cmbStatusBox.Items.AddRange(new object[] { 
     "Ordered"}); 
    } 

Comme vous pouvez le voir, je suis en train de faire le combobox ont des valeurs différentes. En l'état actuel, j'obtiens à la fois ce qui est dans le concepteur et dans le formload dans les comboboxes.

Comment puis-je arrêter cela?

J'ai également une fonction d'édition, donc quand je modifie un enregistrement, je veux que la zone de liste déroulante soit remplie par ce qui est déjà enregistré.

Juste une question aléatoire, pouvez-vous arrêter l'utilisateur d'entrer une valeur qui n'est pas dans la zone de liste déroulante?

Thankyou

+0

Définissez DropDownStyle sur DropDownList pour empêcher l'utilisateur d'entrer une valeur qui n'est pas dans la liste – stuartd

Répondre

5

Si vous voulez remplacer le contenu actuel, alors vous aurez besoin d'appeler

this.cmbStatusBox.Items.Clear(); 

avant d'ajouter vos nouvelles valeurs.

ComboBox MSDN page
ComboBox.Items MSDN page

La propriété DropDownStyle précise également si la partie de texte peut être modifié.

Source

Les valeurs sont les suivantes:

simple Indique que la liste est toujours visible et que la partie de texte est modifiable. Cela signifie que l'utilisateur peut entrer une nouvelle valeur et n'est pas limité à la sélection d'une valeur existante dans la liste.

DropDown Indique que la liste est affichée en cliquant sur la flèche vers le bas et que la partie de texte est modifiable. Cela signifie que l'utilisateur peut entrer une nouvelle valeur et n'est pas limité à la sélection d'une valeur existante dans la liste. Lorsque vous utilisez ce paramètre, la valeur Append de AutoCompleteMode fonctionne de la même manière que la valeur SuggestAppend. C'est le style par défaut.

DropDownList Indique que la liste est affichée en cliquant sur la flèche vers le bas et que la partie de texte n'est pas modifiable. Cela signifie que l'utilisateur ne peut pas entrer une nouvelle valeur. Seules les valeurs déjà dans la liste peuvent être sélectionnées. La liste ne s'affiche que si AutoCompleteMode est Suggest ou SuggestAppend.

Source

1

enlever seulement les articles du code de concepteur.

+0

Cela a fonctionné, avec un inconvénient! Avant, lorsque je modifiais un enregistrement, il remplissait la liste déroulante de mon formulaire d'édition avec ce qui avait été enregistré. Maintenant, il ne le fait pas, donc tout le reste revient pour l'édition, mais cette liste déroulante est vide jusqu'à ce que quelque chose soit sélectionné. Des idées? – sark9012

+0

@Luke: Je m'en remets à la réponse de ChrisF –