Хе-хе, они просто не смогли придумать хороший пример. И наказан тем, что вместо этого показал общий обработчик событий FooChanged. Да, бесполезно.
Довольно необычно реализовать обработчик события ParentChanged самостоятельно. Это большое дело для внутренних объектов Winforms, такие свойства, как BackColor, ForeColor, Font являются «окружающими» свойствами. Если они не переопределены по умолчанию, тогда они получат значение Parent. Что, конечно, означает, что действительно важно заметить, что родитель изменился. Код winforms уже позаботится об этом, вам очень редко приходится об этом беспокоиться. Если, конечно, вы не создадите свое собственное окружающее свойство.