2014-04-09 37 views
1

我想使用ComboboxDropDownStyle=Simple,它在框中鍵入一些內容時會更改項目列表。帶簡單DropDownStyle的組合框不顯示下拉框

項目的加載是OK的,我可以在Items屬性的調試模式下看到它們,但下拉列表不顯示,似乎是空的。

我還試圖強行下拉把

MyComboBox.DroppedDown = True; 

任何線索對這種行爲的顯示?

+0

什麼項目你添加,只是字符串?並且通過顯示下拉列表,您是否意味着您鍵入了某個內容或者您希望能夠將它用作正常的下拉框? – WozzeC

回答

1

根據MSDN:

ComboBoxStyle.Simple是風格

指定該列表始終可見,並且文本部分爲 可編輯。這意味着用戶可以輸入一個新值並且不限於選擇列表中的現有值。

因此,如果列表總是可見的,那麼它在哪裏。由於默認設置爲Size,因此不可見。更改height像這樣:

MyComboBox.Size = new System.Drawing.Size(256, 150);

150表示在這種情況下的高度。默認情況下,這個高度就像21,這個數字非常小。 將高度增加到適當的數字,並且列表應該是可見的。

另外一個非常重要的注意事項:在設置大小之前設置ComboBoxStyle。我不知道爲什麼,但這似乎有些失效或什麼是不妥之處。

所以下面將工作:

//Will work 
MyComboBox.DropDownStyle = ComboBoxStyle.Simple; 
MyComboBox.Size = new System.Drawing.Size(256, 150); 

但這不會:

//Will not work 
MyComboBox.Size = new System.Drawing.Size(256, 150); 
MyComboBox.DropDownStyle = ComboBoxStyle.Simple; 

後者可能與一些明確的無效電話工作,但我沒有驗證。

如果你想在用戶點擊下拉箭頭時打開一個下拉菜單,那麼你將不得不使用其他組合框樣式。在Simple樣式中,下拉箭頭不會出現,並且列表將始終可見,如MSDN定義所示。

+0

設置大小是正確的把戲!非常感謝你 –