2010-07-26 58 views
-1

在我的C#.net窗口应用程序中使用了两个组合框,如combobox1 & combobox2(两个组合框包含相同的项目)如果我选择combobox1中的任何项目,我需要在combobox2中隐藏该值。Winforms combobox compare

+2

你的问题到底是什么?也许你可以提供一些代码来帮助我们发现问题? – NickAldwin 2010-07-26 13:21:37

+0

你想隐藏它,或者你想删除它? – 2010-07-26 13:44:37

+0

Lawrance,你是否试图做一个'选择器'控制,也就是2个列表框,其中的按钮类似于<< >>< >以从中选择一个项目,添加到另一个项目中?你的问题并没有真正地说,但是这是一个常用的窗口小部件,它还没有带有winforms(他们可能会将它保存为WPF)。如果这是你想要的,请编辑,这样我们可以提供帮助。 – FastAl 2010-07-26 20:59:10

回答

0

我想你想在第一个选择第二个组合框中选择相同的索引。

所以在SelectedIndexChanged事件的combobox1添加以下代码:

combobox2.SelectedIndex = combobox1.SelectedIndex;

1

最简单的解决方案是在第一个组合框处理SelectedItemChanged并重新生成第二个组合框中的项目列表,以便第一个选定的项目被排除。如果你没有大量的项目,这应该可以正常工作。另外一个边界情况来考虑:

  • 如果以后更改在第一个组合框以匹配在第二个组合框中选择的选择,您可能需要清除并重新设置第二个组合框。您可以在第一个组合框的相同SelectedItemChanged事件处理程序中处理此案例。
0

最简单的,但也许不是最干净的:

基础上combobox1每一个项目在combobox1选择什么时间不只是重新填充combobox2。

0

您可以使用Contains检查一个人是否有另一个人,并执行一个循环来检查所有项目。

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