Я бы с радостью перешел с .NET -> VB 6.0, используя Interop Forms Toolkit 2.0 от Microsoft именно для этой цели. Я делал это много раз. Другой путь может быть болезненным.
То, что беспокоит вашего коллегу, вполне реально. Возникает проблема: какой контроль в какое время сосредоточен и как определенные мысли обрабатываются под капотом. Ярким примером этого является переход между элементами управления с помощью табуляции.
Учтите, что у вас есть форма .NET с некоторыми элементами управления .NET и VB 6 Active X. Этот ActiveX также будет содержать элементы управления. Теперь, когда вы переходите через свою .NET-форму, когда вы переходите к ActiveX, вы затем ожидаете перехода на табуляцию по всем элементам управления в ActiveX, но вы этого не делаете! Вы сразу перейдете ко всему элементу ActiveX. Это проблема.
Теперь, если вы идете наоборот, .NET внутри VB 6.0, вы должны учитывать это в коде. В этой статье CodeProject есть отличный класс ActiveXHelpers, который именно это и делает. Но в основном это сводится к ручной обработке события KeyPressed, проверке вкладки или shift + tab и ручной фокусировке следующего / предыдущего элемента управления.
Теперь в вашей ситуации вам нужно изменить код VB 6, чтобы он вел себя так. Скорее всего, потребуется меньше усилий, чтобы переписать элемент управления в .NET. У меня никогда не было проблем с обновлением, но, как я уже сказал, я перешел только на .NET -> VB, а не наоборот. В любом случае, вероятно, возникнет много проблем, и у вас, скорее всего, возникнут другие проблемы, такие как затопление событий и определение разницы между дизайном и средой выполнения в VB.
person
ParmesanCodice
schedule
04.11.2009