【问题标题】:Why pressing tab changes the item selected in a combobox为什么按 Tab 会更改组合框中选择的项目
【发布时间】:2014-02-27 09:10:44
【问题描述】:

我有 2 个 ComboBoxes 里面有数据。当我在 first ComboBox 中写入项目名称的一些字母然后按 Tab 键时,焦点移至下一个控件,但显示的项目与按 Tab 键之前​​的不同。在 Second ComboBox 中,数据与第一个中的所选项目相关,但检索到的数据基于未显示的选项卡之前选择的项目。 我的问题是:为什么会这样?如何解决这个问题?

【问题讨论】:

    标签: c# winforms combobox


    【解决方案1】:

    我知道这已经过时了,但这是我发现的唯一符合我的场景的问题,并且我找到了一个令我满意的解决方案。

    本质上发生的事情是,在 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);
        }
    

    【讨论】:

      【解决方案2】:

      请尝试将组合框 DropDownStyle 设置为 DropDownList 而不是 DropDown。

      如果这不是您要搜索的内容,请同时尝试以下内容:

      WPF ComboBox selection change after switching tabs http://www.telerik.com/forums/combobox-value-changes

      【讨论】:

        猜你喜欢
        • 2013-02-14
        • 1970-01-01
        • 1970-01-01
        • 2011-08-17
        • 2012-01-30
        • 2011-02-13
        • 2018-01-23
        • 2012-09-30
        • 1970-01-01
        相关资源
        最近更新 更多