我设计的表单不会在单击按钮时打开,而是打开普通的默认表单

本文关键字:表单 默认 按钮 单击 | 更新日期: 2023-09-27 17:53:37

我遇到的问题是,我在主屏幕上使用菜单栏,所有的选项卡/按钮都在工作,除了一个,而不是打开我想要的表单,它打开了标准的,普通的一个,你看到添加任何东西到表单之前。如果我改变我想要它打开的表单标识符,那么它的工作,只是不与这个表单。有人知道为什么吗?上面的子程序是有问题的,下面的子程序是工作的。

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

最后,答案是我的类中有两个构造函数,它们相互覆盖,因此显示的是普通形式,而不是我设计的第一个构造函数应该显示的形式。