首页 > 解决方案 > 按 T​​ab 更改从组合框中选择的数据

问题描述

我遇到了这个程序代码,我想在我的 Windows 窗体上多次使用它。我已经尝试过了,但它只能同时适用于 comboBox1 和 comboBox2。如果我禁用了comboBox1的代码,那么代码适用于comboBox2和comboBox3。如何重新排列适用于 5 个以上组合框的代码。谢谢。

protected override bool ProcessCmdKey(ref Message msg, Keys keyData) {

        if (comboBox1.DroppedDown && keyData == Keys.Tab)
        {
           SendKeys.Send("{ENTER}");
            return true;
        }
        return base.ProcessCmdKey(ref msg, keyData);

        
        if (comboBox2.DroppedDown && keyData == Keys.Tab)
        {
            SendKeys.Send("{ENTER}");
            return true;
        }
        return base.ProcessCmdKey(ref msg, keyData);

        
        if (comboBox3.DroppedDown && keyData == Keys.Tab)
        {
            SendKeys.Send("{ENTER}");
            return true;
        }
        return base.ProcessCmdKey(ref msg, keyData);
    }

标签: combobox

解决方案


我找到了解决方案。

        if (comboBox1.DroppedDown)
        {
            if (comboBox1.DroppedDown && keyData == Keys.Tab)
            {
                SendKeys.Send("{ENTER}");
                return true;
            }
        }


        else if (comboBox2.DroppedDown)
        {
            if (comboBox2.DroppedDown && keyData == Keys.Tab)
            {
                SendKeys.Send("{ENTER}");
                return true;
            }
        }


        else if (comboBox3.DroppedDown)
        {
            if (comboBox3.DroppedDown && keyData == Keys.Tab)
            {
                SendKeys.Send("{ENTER}");
                return true;
            }
        }


        return base.ProcessCmdKey(ref msg, keyData);

}


推荐阅读