2013-12-21 41 views
-1

我試圖設置ComboBox的文本有條件 - 也就是說,如果我設置它的文本存在於框的Items,然後將其設置爲。否則,請留空。從項目設置組合框文本只有

e.x.

組合框的項目:

  • 綠色
  • 粉紅

對於ComboBox我想設置爲 「紅色」。由於該字符串存在於Items中,因此text屬性設置爲「Red」。對於ComboBox2我試圖設置爲「黃色」,它不存在,所以我希望該文本爲空(但以前的項目仍然存在)。

所有組合框將具有相同的項目。然而,有很多組合的,所以我試圖避免循環通過每個箱子擁有物品和比較每一個。在C#中,您可以執行如下操作:

ComboBox1.ItemIndex := 'My Text'; 

這裏沒有編譯。

回答

1

你可以使用任何

ComboBox1.ItemIndex := ComboBox1.Items.IndexOf('My Text'); 

ComboBox1.Text := 'My Text'; 

第二個版本需要你有組合框的Style設置爲csDropDownList(否則字符串將顯示在下拉列表,即使它是不在列表中)。

+2

這就是我的想法,但它不適用於'csDropDownList'。請參閱WM_SETTEXT的[默認組合框行爲](http://msdn.microsoft.com/en-us/library/windows/desktop/bb775793(v = vs.85).aspx#default_behavior):_In下拉列表框,窗口過程返回CB_ERR._ – NGLN

+0

嗯,我敢肯定,我已經用它的方式,它的工作...今晚必須檢查。也許我使用了一些定製的CB,但我不這麼認爲。無論如何,第一個建議應該可行。 – ain

相關問題