当用户键入时,防止组合框更改所选选项。 C#

时间:2011-05-19 10:28:20

标签: c# winforms combobox

我有一个具有焦点的组合框,如果用户键入一个字符,我该如何阻止组合框更改所选索引。

假设我有一个带有选项“A”和“B”的组合框,选择“A”并且组合框有焦点,如果用户按下“B”,组合框变为“B”选项,我该怎么办?防止这种情况发生?

我想这样做的原因是因为我使用的是条形码扫描仪,下拉列表中包含打印机列表,所选打印机会打印与条形码扫描仪扫描的内容相关的内容。因此,如果组合框/下拉列表具有焦点并且条形码扫描器发送输入,则会更改所选的打印机。

这是我使用的第一个解决方案:我在组合框上使用了按键事件并将处理标志设置为true

    private void comboBox_KeyPress(object sender, KeyPressEventArgs e)
    {
        e.Handled = true;
    }

但是此解决方案不适用于Windows 98。

1 个答案:

答案 0 :(得分:3)

您可以存储最初选择的值,然后在处理KeyPress时将其替换。

我建议您在设置值之前将焦点设置到控件,或者在条形码扫描期间禁用组合框。