Здесь есть два соображения.Во-первых, заголовочные файлы не так важны в управляемом коде, как в родном C или C ++.Компиляторы управляемого кода читают объявления из метаданных сборки, вы не должны (и не должны) писать объявления типов C ++ / CLI, которые должны быть видны в других модулях в заголовочных файлах.Получение их из метаданных делает ваши типы доступными для любого .NET языка.
Но настоящая причина в том, как работает дизайнер форм в C ++ IDE.Это генератор кода, управляемый элементами управления, которые вы перетаскиваете на форму или пользовательский элемент управления, и свойствами, которые вы устанавливаете в окне «Свойства».Существует очень неловкая проблема, если этот генератор кода должен генерировать код в двух отдельных файлах.Не столько генерирующий бит, сколько удаление кода при изменении дизайна формы.Синхронизация файлов приводит к трудностям в диагностике ошибок компиляции из автоматически сгенерированного кода.Это происходит гораздо чаще, чем вы думаете, между прочим, генератор кода должен работать с файлами исходного кода, которые находятся в процессе редактирования.Очень сложно, код может вообще не анализироваться.
В C ++ IDE используется оригинальный подход, принятый дизайнерами C # и VB.NET версии 1.1, все идет в одном файле.Что неприятно, конечно, объявления и код не должны смешиваться.Это было решено в этих дизайнерах для версии 2.0 путем добавления поддержки языков C # и VB.NET для частичных классов.Однако этого не произошло для C ++ / CLI.Не уверен почему, команда C ++ / CLI всегда выглядела ограниченной по сравнению с другими командами.Он также не имеет никакой поддержки рефакторинга, что очень важно для переименования методов при изменении имени класса.Хранение встроенных методов позволяет избежать этой проблемы.
В любом случае, вы можете получить свой код в файле .cpp, но вы должны сделать это самостоятельно.Cut + paste делает это, но вам также придется отредактировать имя класса обратно в объявления метода.Это высокое техническое обслуживание, подумайте, стоит ли оно усилий.Также подумайте, действительно ли вы хотите использовать C ++ / CLI для пользовательского интерфейса, это редкий выбор.