Да, это так.Как только вы отбросите элемент управления в этой фантомной форме, вы получите код времени разработки (InitializeComponent), сгенерированный в этом файле исходного кода.Это поведение совместимости для .NET 1.x, оно не поддерживает ключевое слово Partial.Который сломает сборку, теперь их два.Этого можно избежать с помощью осторожного нажатия, но вы знаете, что это произойдет рано или поздно.
Кстати, другие вещи тоже идут не так, дизайнер больше не может отслеживать обработчик событий при перемещении его из одного файла в другой,И с готовностью позволит вам добавить еще один, гораздо более хитрый источник ошибок.
Это просто не очень хорошо работает, оставьте надежду полагаться на него, чтобы решить вашу проблему.
Общая диагностикав том, что запутанный пользовательский интерфейс порождает запутанный код.Но этот корабль отплыл, без сомнения.Более структурное решение - использование модели MVC, отделяющей данные от их представления.У вас все еще будет много обработчиков событий, но они не будут делать ничего, кроме вызова метода класса, который выполняет настоящую работу.Чей исходный код может, конечно, жить в другом файле исходного кода.Типичное зависание в том, что Windows Forms не имеет никакой поддержки, встроенной для этого, вы должны создать ее вручную.Ничего похожего на модель MVVM в WPF.
То, что может хорошо работать, - это изоляция элемента управления + кода в отдельный UserControl.Вы должны делать это осторожно, однако, вам не нужно добавлять кучу свойств и событий, которые предоставляют внутренние средства управления.