我遇到的问题是,我在主屏幕上使用菜单栏,所有的选项卡/按钮都在工作,除了一个,而不是打开我想要的表单,它打开了标准的,普通的一个,你看到添加任何东西到表单之前。如果我改变我想要它打开的表单标识符,那么它的工作,只是不与这个表单。有人知道为什么吗?上面的子程序是有问题的,下面的子程序是工作的。
Private Sub SupportIncidentsToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles SupportIncidentsToolStripMenuItem.Click
Dim f As frmIncidents
f = New frmIncidents(con, AccCon)
f.Show()
End Sub
Private Sub EmailLogsToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles EmailLogsToolStripMenuItem.Click
Dim f As frmEmailLogs
f = New frmEmailLogs(con)
f.MdiParent = Me
f.Show()
End Sub
在这一行中,你调用的是带有2个参数的构造函数
f = New frmIncidents(con, AccCon)
在你的frmIncidents类中你手动添加了一个像这样的构造函数
Public Sub frmIncidents(con as WhatEverConIs, Acon as WhatEverAConIs)
End Sub
但是每个表单构造函数都应该调用InitializeComponent
方法,该方法是由WinForms设计器自动创建的,通过设计器声明表单控件和相关属性。
参见InitializeComponent的简单定义
手动添加这个构造函数并查看调用Show方法时呈现的空白表单,我很确定您已经忘记添加对InitializeComponent
的调用
Public Sub frmIncidents(con as WhatEverConIs, Acon as WhatEverAConIs)
InitializeComponent()
End Sub
最后,答案是我的类中有两个构造函数,它们相互覆盖,因此显示的是普通形式,而不是我设计的第一个构造函数应该显示的形式。