Intendo dire che eventuali forme grafiche persistenti all'interno di un form devono essere disegnate ogni volta che il sistema operativo lo richiede, quindi anche se tu riuscissi a disegnare una qualsivoglia forma sul form, al successivo refresh (perché il form viene coperto o per altri motivi) perderesti quanto hai disegnato.

Il suggerimento di usare OnPaint è corretto, in questo caso.

Se il tuo problema è quello di visualizzare un rettangolo nel punto cliccato, puoi fare in modo che, al clic, si aggiunga in una struttura dati a tuo piacimento le informazioni necessarie per sapere dove piazzare il rettangolo e quali dimensioni attribuirgli, ma il disegno effettivo viene demandato all'esecuzione dell'evento OnPaint che verificherà l'esistenza di queste informazioni e provvederà a disegnare il rettangolo con le caratteristiche richieste, e questo ogni volta che il sistema richiederà al form di disegnare se stesso.

Ho chiarito i dubbi?