我有一个具有焦点的组合框,如果用户键入一个字符,我该如何阻止组合框更改所选索引。
假设我有一个带有选项“A”和“B”的组合框,选择“A”并且组合框有焦点,如果用户按下“B”,组合框变为“B”选项,我该怎么办?防止这种情况发生?
我想这样做的原因是因为我使用的是条形码扫描仪,下拉列表中包含打印机列表,所选打印机会打印与条形码扫描仪扫描的内容相关的内容。因此,如果组合框/下拉列表具有焦点并且条形码扫描器发送输入,则会更改所选的打印机。
这是我使用的第一个解决方案:我在组合框上使用了按键事件并将处理标志设置为true
private void comboBox_KeyPress(object sender, KeyPressEventArgs e)
{
e.Handled = true;
}
但是此解决方案不适用于Windows 98。
答案 0 :(得分:3)
您可以存储最初选择的值,然后在处理KeyPress时将其替换。
我建议您在设置值之前将焦点设置到控件,或者在条形码扫描期间禁用组合框。