Он будет рисовать прямоугольник только в том случае, если он окажется внутри области, которая недействительна для обновления измененного текста.
Когда вы изменяете текст, он создает сообщение о том, что текст должен быть перерисован, что вызовет событие Paint
для рисования. Событие будет иметь объект Graphics
, который обрезается по прямоугольнику, который необходимо перерисовать для обновления текста, поэтому будет нарисована только та часть прямоугольника, которая пересекается с текстом.
Вы должны вызвать перерисовку, которая покрывает весь прямоугольник, поэтому проще всего сделать перерисовку всего окна:
this.Invalidate();
Обратите внимание, что вам не следует подключать событие Paint
из обработчика события Click
. Это означает, что событие будет подключаться еще один раз при каждом нажатии, поэтому после пяти щелчков обработчик события Paint
будет вызываться пять раз каждый раз, когда необходимо что-то перерисовать.