我在UI中有幾個組合框,每個組合框都有一長串相似的條目(數字)。當用戶從一個組合框中選擇一個項目時,我知道用戶將從其他組合框中選擇一個具有相似值(但可能不相同)的項目。因此,在用戶選擇了一個值之後,爲了避免強迫用戶進行大量的滾動操作,我希望將下一個組合框下拉到「最後選擇的值」附近(當此下拉列表不顯示時已經有一個選擇)。在WinForms中檢測ComboBox.DropDownClosed中的用戶選擇
我以
combobox.SelectedItem = myLastSelectedItem;
一個combobox.DropDown事件處理中迄今完成這一點。
然後,當下拉菜單關閉時,我需要能夠檢測用戶是否從下拉菜單中點擊了某個項目。如果用戶沒有點擊某個項目,那麼我必須將選定的值重置爲之前的值(無)。用戶可以點擊myLastSelectedItem或其他項目(因此,我不能僅將當前選擇的項目與myLastSelectedItem進行比較,因爲即使用戶點擊了它們也可能是相同的)。 SelectedValueChange,SelectedIndexChange,TextChanged都會在DropDownClosed事件後被觸發,因此我無法使用它們。 MouseClick事件根本不會被解僱。
因此,我怎樣檢測用戶在組合框下拉菜單點擊一個項目(而不是下拉關閉,因爲用戶點擊它的外面,或按下退出)?
你在幫助太多,它已經以這種方式工作而沒有做任何事情。 –
@HansPassant:對不起,我要麼誤解你的評論,要麼你誤解了我的問題(不管怎樣,這可能是我的錯:))。哪部分已經是什麼方式? – Jimmy