#vb.net #vb6-migration
#vb.net #vb6-миграция
Вопрос:
Я искал здесь решения, но они, похоже, отличаются от ситуации, с которой я сталкиваюсь. У меня есть MDIMain.frm, у меня есть его «IsMdiContainer = True». У меня есть другая форма, в которой я устанавливаю objForm1.MdiParent = MDIMain, я показываю objForm1.Показать и сохранить MDIMain. Но единственное, что появляется, это MDIMain, который полностью пуст.
Предполагается, что MDIMain должен быть полностью пустым, дизайн должен был заменить на него любую из 4 «дочерних» форм. Я запустил VB6 в VB.Инструмент сетевого преобразования из версии 2005 для «переноса» проекта с одного языка на другой. Конечно, было много проблем, но у меня запущена программа, и начальные части кода, похоже, в порядке. Именно эту проблему MDI parent / child я вижу прямо сейчас. Программа изначально открывает не основную форму MDI, а некоторые другие формы, а затем основную форму MDI с подключенным правильным дочерним элементом.
Я нашел очень простой пример MDI для родителей / дочерних элементовhttps://www.oreilly.com/library/view/programming-visual-basic/0596000936/ch04s04.html и это могло бы сработать.
В новой() ‘дочерней’ форме этот код взят из конвертера:
Public Sub New()
MyBase.New()
'This call is required by the Windows Form Designer.
InitializeComponent()
'This form is an MDI child.
'This code simulates the VB6
' functionality of automatically
' loading and showing an MDI
' child's parent.
Me.MDIParent = UniProg.MDIMain
UniProg.MDIMain.Show
Form_Initialize_renamed()
End Sub
Какой вид выглядит нормально, устанавливая дочерний родительский элемент в форму MDI проекта. Затем отображается форма MDI. Здесь не видно, но имя MDIMain.Загрузка вызывается как побочный эффект
Col_Plus_Calib.Add(MDIMain.UC_Status)
вызов. Это то, что я вижу из стека вызовов, после установки точки останова в процедуре MDIMain_Load. Затем процедура MDIMain_Load, которую я жестко запрограммировал
frmPlus.MdiParent = Me
frmPlus.Show()
Чтобы отобразить дочернюю форму.
В одном из предложений прокомментирован порядок выполнения этих операций, так что, возможно, это проблема. но я не совсем разбираюсь в этих деталях. Так что, возможно, объекты созданы не в правильном порядке или созданы вообще?
Комментарии:
1. Без дополнительного кода было бы трудно помочь вам сузить проблему. В любом случае, в .NET в наши дни появилось довольно много нового. Я не знаю, что делает ваше приложение, но вам может оказаться проще существенно переписать его, чем пытаться автоматически преобразовать его и устранить возникающие проблемы.
2. Вы проверили
Project-> Properties->Application
, какова начальная форма вашего приложения? Вы также должны опубликовать код, в котором вы показываете objForm1. Показать и MDIMain (надеюсь, не в таком порядке 🙂3. Не вкладывайте ответ в вопрос. Вместо этого опубликуйте ответ.