我在窗體上有一個組合框。 ComboBox的DropDownStyle
屬性設置爲DropDown
,以便用戶可以從下拉列表中選擇項目或手動鍵入一些文本。當從下拉列表中選擇一個項目時,更改組合框的文本字段?
當用戶從下拉列表中選擇一個項目時,我想在項目的文本出現在ComboBox的文本字段中之前進行一些更改。要使用非常簡單的例子,假設在下拉列表中包含了由一個ID和描述的,像這樣的項目:
101 Cat
102 Dog
103 Bird
當選擇其中一個項目,我想只有描述出現在組合框的文本字段中。所以當選擇「102 Dog」時,字符串「Dog」應顯示在文本字段中,可供用戶編輯,下拉列表中的項目應保持不變。
我以爲我可以只聽組合框的SelectionChangeCommitted
事件,並將ComboBox的Text
屬性設置爲我喜歡的任何屬性。但是如果我這樣做,我對Text
所作的更改將被忽略,並且整個字符串(「102 Dog」)仍顯示在ComboBox中。
因此,我想我應該也將SelectedIndex
字段更新爲-1,以向組合框指示我設置的Text
不是下拉列表中的項目。但是,這完全清除了文本字段,無論我更改Text
屬性。
所以後來我想,SelectionChangedCommitted
是使用了錯誤的事件,因爲它似乎太快了,我的目的(在Text
屬性似乎只與我的選擇後SelectionChangeCommitted
事件處理程序已完成更新)火。但所有其他ComboBox事件也無法正常工作,包括SelectedIndexChanged
和DropDownClosed
。
我認爲這是相當微不足道的。有一個簡單的方法來做到這一點,我敢肯定我錯過了明顯的東西......任何想法?
BeginInvoke!當然。好消息是這個作品,壞消息是我現在感覺像個白癡。 ;) 謝謝。 – Justin