读书人

winform 方向键焦点丢失有关问题(key

发布时间: 2012-10-12 10:17:04 作者: rapoo

winform 方向键焦点丢失问题(keydown event not work)

在项目中遇到了,方向键不能被keydown event 捕捉的问题

?

下面是解决方案

?

button1.PreviewKeyDown +=new PreviewKeyDownEventHandler(button1_PreviewKeyDown);

button1.KeyDown += new KeyEventHandler(button1_KeyDown);

?

1.取消方向键丢失焦点的问题

?

protected override bool ProcessDialogKey(Keys keyData){    switch (keyData)    {        case Keys.Left:            // 处理代码            break;        case Keys.Right:             // 处理代码            break;        case Keys.Up:            // 处理代码            break;        case Keys.Down:            // 处理代码            break;    }    return base.ProcessDialogKey(keyData);}

?

可以直接return false 处理

?

?

protected override bool ProcessDialogKey(Keys keyData){    switch (keyData)    {        case Keys.Left:        case Keys.Right:        case Keys.Up:        case Keys.Down:           return false;    }    return base.ProcessDialogKey(keyData);}
?

?

2.如果上面不好使的话,可能是因为winform方向键被占用,无法在下层使用,需要被激活

?

?

private void button1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e){    switch (e.KeyCode)    {        case Keys.Down:        case Keys.Up:            e.IsInputKey = true;            break;    }}
?

?

读书人网 >编程

热点推荐