protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { if (keyData == Keys.Left) { if (!field.LeftBorder.Intersect(ln.LeftBorder.ToAbsolute(ln.Position)).Any()) { field.Clear(ln); ln.Position = new Point(ln.Position.X - 1, ln.Position.Y); field.Draw(ln); } } if (keyData == Keys.Right) { if (!field.RightBorder.Intersect(ln.RightBorder.ToAbsolute(ln.Position)).Any()) { field.Clear(ln); ln.Position = new Point(ln.Position.X + 1, ln.Position.Y); field.Draw(ln); } } if (keyData == Keys.Up) { // if (top>0) { field.Clear(ln); ln.Rotate(); field.Draw(ln); } } if (keyData == Keys.Down) { if (field.ReadyToMoveDown && !field.DeadLine.Intersect(ln.BottomBorder.ToAbsolute(ln.Position)).Any()) { field.Clear(ln); ln.Position = new Point(ln.Position.X, ln.Position.Y + 1); field.Draw(ln); } } return(base.ProcessCmdKey(ref msg, keyData)); }