Я думаю, что это артефакт дизайнера .NET 1.1. Тогда еще не было ключевого слова частичное , у дизайнера была незавидная задача найти метод InitializeComponent () даже в коде, который находился в процессе редактирования. Никакой помощи от компилятора.
Чтобы избежать риска неправильной интерпретации кода, в нем были некоторые основные правила о том, как должен выглядеть этот код. И требование, чтобы класс формы был первым классом в файле, имеет большой смысл. Если бы этого правила не было, оно должно было бы иметь возможность проанализировать класс, который может иметь очень простые синтаксические ошибки, такие как несбалансированные скобки. Простое объявление «не могу загрузить форму» в этом случае никого не порадует.
Это требование не может быть отменено после того, как частичное ключевое слово станет доступным, оно все еще должно поддерживать формы, которые были разработаны в более ранних версиях.
Это единственное правило верстки кода, которое я знаю. Существует лотов других возможных неудач, и ручное использование InitializeComponent () всегда является хорошим способом получить WSOD.