在MDI子窗体中keydown事件后窗体缩小
文件一:
            KFrm kFrm = new KFrm(scode);
            kFrm.MdiParent = this.ActiveMdiChild;
            kFrm.WindowState = FormWindowState.Maximized;
            kFrm.Show();
文件二 keydown事件
              if (e.KeyData == Keys.Up)
                {                }                if (e.KeyData == Keys.Down)
                {                }
                if (e.KeyData == Keys.Right)
                {                }
                if (e.KeyData == Keys.Left)
                {                }

解决方案 »

  1.   

    可以这样来实现:if (e.KeyData == Keys.Up)
    {
    this.Height -= 1;
    }if (e.KeyData == Keys.Down)
    {
    this.Height += 1;
    }
    if (e.KeyData == Keys.Right)
    {
    this.Width += 1;
    }
    if (e.KeyData == Keys.Left)
    {
    this.Width -= 1;
    }
      

  2.   

    为了保证窗体上可能有其它控件而使得窗体不能处理按键事件,你可以改用如下的重写方法: protected override bool ProcessDialogKey(Keys keyData)
    {
    if (keyData == Keys.Up)
    {
    this.Height -= 1;
    } if (keyData == Keys.Down)
    {
    this.Height += 1;
    }
    if (keyData == Keys.Right)
    {
    this.Width += 1;
    }
    if (keyData == Keys.Left)
    {
    this.Width -= 1;
    }
    return base.ProcessDialogKey(keyData);
    }
      

  3.   

    我试了一下,还是不行,子窗体在接收了keydown事件后跑到父窗体后面去了且还是缩小的.甚至还多开了几个同样的子窗体