如何解决将VB6 MDIForm应用程序移植到VB.Net
我一直在这里寻找解决方案,但是它们似乎与我遇到的情况有所不同。 我有一个MDIMain.frm,我有它的“ IsMdiContainer = True”。我有另一种形式,其中设置objForm1.MdiParent = MDIMain,显示objForm1.Show和MDIMain。但是唯一出现的是MDIMain,它完全是空的。
MDIMain应该完全是空的,其设计是要交换4种“子”形式中的任何一种。 我从VS.2005运行了VB6到VB.Net转换工具,以将项目从一种语言“移植”到另一种语言。当然有很多问题,但是我正在运行程序,代码的初始部分似乎还可以。我现在看到的只是这个MDI父/子问题。该程序最初不会打开主要的MDI表单,而是先打开其他一些表单,然后再打开具有正确的子级的主要MDI表单。
我找到了一个非常简单的MDI父/子示例https://www.oreilly.com/library/view/programming-visual-basic/0596000936/ch04s04.html,可以使之工作。
在“子级”形式的New()中,此代码来自转换器:
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.Load被称为a
的副作用 Col_Plus_Calib.Add(MDIMain.UC_Status)
打电话。这是我在MDIMain_Load例程中放置断点后从Call堆栈中看到的内容。然后我对MDIMain_Load例程进行了硬编码
frmPlus.MdiParent = Me
frmPlus.Show()
显示子窗体。
其中一项建议评论了这些操作的顺序,因此可能就是问题所在。但我对这些细节感到困惑。那么也许对象的创建顺序不正确或根本没有创建?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。