Instead of moving Pac-Man during the keypress, use the keypress to set a direction, and move Pac-Man outside the keypress logic.
enum Direction {Stopped, Left, Right, Up, Down};
Direction current_dir = Direction.Stopped;
// Check keypress for direction change.
if (e.KeyCode == Keys.Down) {
current_dir = Direction.Down;
} else if (e.KeyCode == Keys.Up) {
current_dir = Direction.Up;
} else if (e.KeyCode == Keys.Left) {
current_dir = Direction.Left;
} else if (e.KeyCode == Keys.Right) {
current_dir = Direction.Right;
}
// Depending on direction, move Pac-Man.
if (current_dir == Direction.Up) {
// Move Pac-Man up
} else if (current_dir == Direction.Down) {
// Move Pac-Man down
} else if (current_dir == Direction.Left) {
// Move Pac-Man left
} else if (current_dir == Direction.Right) {
// You get the picture..
}
As BartoszKP's comment recommends, you will want to set the direction in Pac-Man's private variables.