WindowsForm 按 Tab 键更改从组合框中选择数据

问题描述 投票:0回答:1

我遇到了这个程序代码,我想在我的 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
1个回答
0
投票

我找到了解决方案。

        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);

}

© www.soinside.com 2019 - 2024. All rights reserved.