代码之家  ›  专栏  ›  技术社区  ›  sword1st

如何在列表框中禁用按键导航,但保持检测按键事件?

  •  1
  • sword1st  · 技术社区  · 6 年前

    ListBox . 我可以通过下面的代码成功完成此操作:

    private void listClips_PreviewKeyDown(object sender, KeyEventArgs e)
    {
        e.Handled = true;
    }
    

    但我想为我的程序添加一个键盘快捷键。我一开始就不工作了 e.Handled = true .

    private void listClips_KeyDown(object sender, KeyEventArgs e)
    {
        MessageBox.Show("Key Pressed " + e.Key);
    }
    

    我怎样才能让它们都正常工作?

    1 回复  |  直到 6 年前
        1
  •  1
  •   mm8    6 年前

    你不能把你的逻辑转移到 PreviewKeyDown 处理程序?

    private void listClips_PreviewKeyDown(object sender, KeyEventArgs e)
    {
        //custom logic...
        MessageBox.Show("Key Pressed " + e.Key);
    
        e.Handled = true;
    }
    

    处理所需的任何快捷方式,并始终设置 Handled 属性到 true 之后。