Iv made conways game of life, but I want the user to be able to select a pre defined pattern or for them to be able to choose different shaped brushes then draw with that brush.

Aswell, when I use the radio buttons to change the size, the program goes slow and stops working, does anyone know why that is?

And, Iv tried to create an eraser type tool using brush color.empty, but it doesnt work, how can I create an eraser tool, or a button to completely clear what the user has drawn, everything Iv tried has not worked.

One more thing, when I change the size the squares drawn do not align to the grid properly, can anyone see why?

What exactly do you mean by different shaped brushes?
See you are using a SolidBrush.
There is also a HatchBrush (a brush with patterns)
A TextureBrush (a brush with a bitmap or jpeg image)
A LinearGradientBrush and a PathGradientBrush.