Что вам нужно сделать, это упаковать формы в DLL ActiveX и выставить классы, которые могут устанавливать начальные значения, вызывать формы и возвращать любые значения, которые они изменяют.
Например, в моих собственных приложениях CAD/CAM у нас есть Формы, а затем слой, который не содержит ничего из Command Objects (классы, реализующие шаблон проектирования команд), которые изменяют модель, и модель, все написанные на VB6.
Некоторые из диалоговых окон «Команды», которые являются формами VB6. Некоторые из них просты, а другие сложны. Первая фаза нашего проекта конверсии заключалась в том, чтобы вырвать верхний слой формы и заменить его эквивалентом .NET. Новые формы .NET ссылаются на активные библиотеки DLL, содержащие объект Command.
Он работал нормально. Были некоторые визуальные различия между представлением .NET и видом формы VB6, но кроме командных диалогов выполнялись так же, как и в исполняемом файле VB6.
Следует обратить внимание на то, что если вы продолжаете изменять исходные DLL-файлы ActiveX во время этого процесса, то создание программы .NET становится немного больно. В отличие от VB6, .NET не так автоматичен, когда речь заходит о обновленных ссылках на более новые версии библиотеки ActiveX, на которую ссылается. Решение прост, вы отбрасываете исходную ссылку и затем добавляете новую ссылку.
Являются ли ваши .NET формы WPF или WinForms? – MarkJ
Я сделал это с обоими. –