2010-07-26 5 views
-1

Suis l'utilisation de deux combobox dans mon application C# .net windows comme combobox1 & combobox2 (deux combobox contiennent les mêmes éléments) si je choisis des éléments dans combobox1 je dois cacher cette valeur dans combobox2.WinForms combobox comparer

+2

Quelle est exactement votre question? Peut-être pourriez-vous nous fournir un code pour nous aider à trouver le problème? – NickAldwin

+0

Vous souhaitez le cacher ou vous voulez le supprimer? –

+0

Lawrance, essayez-vous de faire un contrôle 'picker', c'est-à-dire, 2 zones de liste avec des boutons comme << >>< > entre les deux pour choisir des éléments d'un, ajouter à l'autre? Votre question ne dit pas littéralement cela, mais c'est un widget commun qui ne vient pas encore avec des winforms (ils l'enregistrent probablement pour WPF). Si c'est ce que vous voulez s'il vous plaît modifier afin que nous puissions vous aider. – FastAl

Répondre

0

Je suppose que vous voulez que le même index soit sélectionné dans la deuxième liste déroulante que vous sélectionnez dans la première.

Ainsi l'événement SelectedIndexChanged de combobox1 ajoutez ce code:

combobox2.SelectedIndex = combobox1.SelectedIndex;

1

La solution la plus simple est de gérer SelectedItemChanged sur la première zone de liste déroulante et re-générer la liste des éléments pour la deuxième zone de liste déroulante afin que l'élément sélectionné dans le premier est exclu. Cela devrait fonctionner correctement si vous n'avez pas un grand nombre d'éléments. Un cas limite à prendre en considération:

  • Si vous modifiez ultérieurement la sélection dans la première zone de liste déroulante pour correspondre à ce qui a été sélectionné dans la deuxième zone de liste déroulante, vous pouvez effacer et réinitialiser la deuxième zone de liste déroulante. Vous pouvez gérer ce cas dans le même gestionnaire d'événements SelectedItemChanged dans la première zone de liste déroulante.
0

Le plus facile, mais peut-être pas la plus propre:

Juste repeupler ComboBox2 basé sur ce qui est pas ComboBox1 chaque fois qu'un élément est sélectionné dans ComboBox1.

0

Vous pouvez utiliser Contient pour vérifier si l'un a l'autre et faire une boucle pour vérifier tous les éléments.

for (int i = 0; i < ListBox1.Items.Count; i++) 
      { 
       if (ListBox2.Items.Contains(ListBox1.Items[i])) 
       { 
         ListBox1.Items.RemoveAt(i); 
         i--; 
       } 
      } 
Questions connexes