.net 如何确定组合框selectionchangecommitted是否由键盘或鼠标输入引发

.net 如何确定组合框selectionchangecommitted是否由键盘或鼠标输入引发,.net,winforms,.net-2.0,.net,Winforms,.net 2.0,我希望忽略组合框的SelectionChangeCommitted事件上的向上和向下箭头键,并且只让鼠标允许选择。有人知道怎么做吗 我需要一种方法来确定键或单击是否导致了SelectionChangeCommitted事件。我想我可以有一个标志,在鼠标点击事件中打开,在按键按下时关闭,但我想知道是否有更干净的方法?您应该能够处理组合框的按键事件,并取消(e.cancelled=true;)它。这也将防止当您按下与项目的第一个字母匹配的键时组合框项目发生更改。您可以通过使用类似的KeyDown事件

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


我需要一种方法来确定键或单击是否导致了
SelectionChangeCommitted
事件。我想我可以有一个标志,在鼠标点击事件中打开,在按键按下时关闭,但我想知道是否有更干净的方法?

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

您可以通过使用类似的
KeyDown
事件来抑制该键

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