You use static methods when the method does not need to access any non-static class elements such as properties, events, or methods in order to do it's job.
Think of it this way: how many wheels does a car have? What colour is a car?
The first is a static question, because all cars have 4 wheels (if they had two they would be motorcycles, and three would make them tricycles). You don't need to establish which car you are talking about, because the question is generic to all cars.
The second is non-static: you have to indicate which car you are talking about. "My Car" is black; "Your Car" is green; "This car" is red; "That car" is blue - you cannot answer the question unless you know which car you are talking about.
Classes are the same: static methods (and properties, fields, events) when you don't need information about a specific instance, non-static when you do:
public class Car
{
private Color colour;
public static int CountWheels() { return 4; }
public Color GetColour() { return colour; }
}