我想覆盖ListBox项的选择行为。
我们可以使用向上和向下箭头遍历ListBox项目,但我想使用向左和向右箭头键遍历列表。
当我尝试为ListBox添加按键事件时,它显示除箭头键,Home,End和类似键之外的几乎所有键按下。
我有以下代码:
private void listArtist_KeyDown(object sender, System.Windows.Input.KeyEventArgs e)
{
if (e.Key.ToString() == "Enter")
{
// Go to some page
}
else
{
MessageBox.Show(e.Key.ToString());
}
}
我对此毫无头绪。请帮忙。
谢谢, Subhen
答案 0 :(得分:4)
您需要做的是继承ListBox并覆盖OnKeyDown函数。也许是这样的:
class MyListBox : ListBox
{
protected override void OnKeyDown(KeyEventArgs e)
{
switch (e.Key)
{
case Key.Left:
// ....
e.Handled = true;
break;
case Key.Right:
// ....
e.Handled = true;
break;
}
if (!e.Handled)
base.OnKeyDown(e);
}
}
答案 1 :(得分:1)