try to override Control.ProcessDialogKey  or ProcessKeyMessage protected virtual bool ProcessDialogKey(Keys keyData)

解决方案 »

  1.   

    private void Form1_KeyUp(object sender, System.Windows.Forms.KeyEventArgs e)
    {
       this.button1.Focus();
    switch(e.KeyCode.ToString())
    {
    case "Down":
    MessageBox.Show("Down");

    break; case "Up":
    MessageBox.Show("Up");

    break;
    case "Right":
    MessageBox.Show("Right");

    break; case "Left":
    MessageBox.Show("left");

    break;
    }
    }
      

  2.   

    saucer(思归) ,
    麻烦你可不可一个我一个例子,我是初学C#,水平还很低,请多指教,多帮忙,谢谢!
      

  3.   

    drag2003(龙飞),KeyPress事件根本就没有触发,所以行不通
    dazhu2(边城浪子) ,在发生KeyUp时,按钮上的焦点已经转移了。我需要焦点不转移的功能,请帮忙再给些建议。谢谢大家!
      

  4.   

    ,呵呵,有人说 Handled=true 可以吃掉鼠标键盘事件,可是它还是照样传送到我的程序。
      

  5.   

    Handled=true 好象是没有用
      

  6.   

    this.button1.Focus();
    可以让焦点回到原控件,但看的出焦点已转移过,。再看看有没有其他办法;UP
      

  7.   

    Private Sub FormBase_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles MyBase.KeyPress
            If e.KeyChar = ControlChars.Cr Then
                e.Handled = False
                SendKeys.Send(ControlChars.Tab)
            End If
        End Sub