簡體   English   中英

為什么按 Tab 鍵會更改組合框中選定的項目

[英]Why pressing tab changes the item selected in a combobox

我有 2 個ComboBox ,里面有數據。 當我在第一個ComboBox 中寫入項目名稱的一些字母然后按 Tab 鍵時,焦點移動到下一個控件,但顯示的項目與按 Tab 鍵之前​​的項目不同。 第二個ComboBox 中,數據與第一個中的所選項目相關,但檢索到的數據基於未顯示的選項卡之前選擇的項目。 我的問題是:為什么會發生這種情況? 如何解決這個問題呢?

我知道這是舊的,但這是我發現的唯一與我的場景相匹配的問題,我找到了一個令我滿意的解決方案。

本質上發生的事情是,在 Winforms 應用程序 ComboBox 中,tab 鍵會圍繞完成您的選擇並移動到下一個控件。 因此,您的 ComboBox 最終會被扔回選擇列表中看似隨機的項目。 此處的預期流程是找到您的項目,單擊它或按 Enter,然后按 Tab。 所以我通過覆蓋擁有 ComboBox 的 Form 上的 ProcessCmdKey 來解決這個問題,只要 ComboBox 被下拉,就強制 Tab 鍵表現得像 Enter 一樣。

這是我決定的一個例子:

protected override bool ProcessCmdKey(ref Message msg, Keys keyData) {
        if (this.youComboBox.DroppedDown && keyData == Keys.Tab)
        {
            SendKeys.Send("{ENTER}");
            return true;
        }
        return base.ProcessCmdKey(ref msg, keyData);
    }

請嘗試將組合框 DropDownStyle 設置為 DropDownList 而不是 DropDown。

如果這不是您要搜索的內容,請嘗試以下方法:

切換選項卡后 WPF ComboBox 選擇更改http://www.telerik.com/forums/combobox-value-changes

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM