1) Store all your existing squares' co-ordinates in a
List<
RectangleF>
2) Create a new possible square.
3) Iterate over all existing squares looking for overlaps (
RectangleF.Intersects() may help)]
4) One overlap is enough to render this potential square unusable, try the next one.