Да, это явно связано с событиями.
.Load
в этом случае событие Form.Load
.Оператор +=
добавляет один обработчик события к событию.Событие может иметь много обработчиков событий одновременно.Обработчики событий - это обычный метод, который может быть где угодно в вашей кодовой базе.Когда запускается событие, будут вызываться все подписанные методы, один за другим.
Я не вижу особой веской причины, чтобы FormA слушала событие Load
FormB, но другие события могут быть более интересными, напримерсобытие Form.Closed
.Это способ заставить FormA реагировать на изменения в FormB.
Edit
Обратите внимание, что это заставляет FormA содержать ссылку на FormB, и FormB не будет собирать мусор, пока FormAосвобождает ссылку на FormB (с
this.CGForm .Load -=new EventHandler(CGForm_Load);
, обратите внимание на -=
), это частая причина утечек памяти в .NET.
Подписка на события из других форм - это «запах кода»это может быть потенциальной структурной проблемой в вашем коде.В некоторых случаях это требуется, но если он у вас есть повсюду, ваш код будет трудно понять и поддерживать.