Передвижение элипса по форме

GDI
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        Graphics _gr;
        BufferedGraphics _bufferedGraphics;
        BufferedGraphicsContext _bufferedGraphicsContext;

        Rectangle _rect = new Rectangle(0, 400, 50, 50);
        Pen _pen = new Pen(Color.Green, 3);

        public Form1()
        {

            InitializeComponent();
            Size = new Size(700, 600);
            StartPosition = FormStartPosition.CenterScreen;

            KeyDown += new KeyEventHandler(Form1_KeyDown);
            Paint += new PaintEventHandler(Form1_Paint);
            _bufferedGraphicsContext = BufferedGraphicsManager.Current;
            _bufferedGraphics = _bufferedGraphicsContext.Allocate(this.CreateGraphics(),
            new Rectangle(0, 0, this.Width, this.Height));

        }
        private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Left)
            {
                _rect.X -= 5;
            }
            if (e.KeyCode == Keys.Right)
            {
                _rect.X += 5;
            }
            if(e.KeyCode == Keys.Up)
            {
                _rect.Y -= 5;
            }
            if(e.KeyCode == Keys.Down)
            {
                _rect.Y += 5;
            }
            DrawToBuffer();
        }

        private void Form1_Paint(object sender, PaintEventArgs e)
        {       
            _gr = e.Graphics;
            DrawToBuffer();
        }
        private void DrawToBuffer()
        {
            _bufferedGraphics.Graphics.Clear(BackColor);
            _bufferedGraphics.Graphics.DrawEllipse(_pen, _rect);
            _bufferedGraphics.Render();
        }

    }
}