【问题标题】:Use Up/Down keys to scroll a ListBox when a "gridview cell" has focus without moving cursor当“gridview 单元格”具有焦点而不移动光标时,使用向上/向下键滚动列表框
【发布时间】:2017-08-10 08:14:15
【问题描述】:

我有一个用户可以在特定单元格中搜索的 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++;
            }

        }

【问题讨论】:

    标签: c# winforms gridview listbox


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      另一种解决方案

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

      祝你有美好的一天!

      【讨论】:

        猜你喜欢
        • 2016-01-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-31
        • 2023-03-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多