2010-07-26 28 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--; 
       } 
      }