如何确定是否通过键盘或鼠标输入引发了组合框选择变更

时间:2011-09-21 18:41:56

标签: .net winforms .net-2.0

我希望忽略组合框的SelectionChangeCommitted事件上的向上和向下箭头键,并且只允许选择鼠标。有谁知道怎么做?

我需要一种方法来确定密钥或点击是否导致SelectionChangeCommitted事件。我想我可以在一个鼠标点击事件中打开一个标志,然后按下一个按键关闭,但我想知道是否有一个更清洁的方式?

2 个答案:

答案 0 :(得分:2)

您应该能够处理组合框的KeyPress事件,并取消(e.Canceled = true;)它。当您按下与项目的第一个字母匹配的键时,这也会阻止组合框项目发生变化。

答案 1 :(得分:2)

您可以使用像这样的KeyDown事件来压缩密钥;

    private void comboBox1_KeyDown(object sender, KeyEventArgs e)
    {
        e.SuppressKeyPress = true;
    }