使用向上/向下键在" gridview单元格时滚动ListBox"没有移动光标就有焦点

时间:2017-08-10 08:14:15

标签: c# winforms gridview listbox

我有一个gridview控件,用户可以在特定单元格中搜索,以及相应的ListBox,它显示来自DB的一些结果。我想要执行以下操作,使用向下和向上键,我想滚动列表框,当用户按下回车键时,所选列表框值应附加在gridview单元格中。我尝试了以下代码,但事件并未启动。

void dgvPOS_KeyDown(object sender, KeyEventArgs e)
        {
            this.lbxProductName.Focus();
            this.lbxProductName.Select();

            if (e.KeyCode == Keys.Up)
            {
                this.lbxProductName.SelectedIndex--;
            }
            else if (e.KeyCode == Keys.Down)
            {
                this.lbxProductName.SelectedIndex++;
            }

        }

2 个答案:

答案 0 :(得分:1)

我只能假设焦点不在列表框上。在这种情况下,捕获KeyUp,KeyDown和Enter的最佳方法是在包含Form的PreviewKeyDown事件中处理它。

答案 1 :(得分:0)

另一种解决方法

如果您使用的是WPF,它包含System.Windows.Input命名空间和一个名为Keyboard的类,它允许您检测系统范围内的击键。可以找到更多信息here。然后,您可以检查箭头键上的击键,然后可以更改listBox.SelectedIndex属性以更改当前选择。

度过美好的一天!