0

我有一个Panel被叫。我有默认值为 False 的可见属性。当我用这个代码从我的被叫中调用它时:Panel_Manage_CalculationsFormCriteriaMenuStripMenutStrip_Main

Private Sub ManageCalculationsToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ManageCalculationsToolStripMenuItem.Click
    Criteria.Panel_Manage_Calculations.Show()
End Sub

它没有显示。但是,如果我打开一个按钮Criteria并使用此代码:

Private Sub Button4_Click(sender As Object, e As EventArgs)
    Panel_Manage_Calculations.Show()
End Sub

它会显示。

上唯一的其他对象Criteria是 a DataGridView

从 调用时如何Panel_Manage_Calculations显示MenutStrip_Main

附加信息

在我单击之前可能运行的唯一其他代码是:

Private Sub AddToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem_Criteria.Click
    For Each mdiChild As Form In Me.MdiChildren
        If mdiChild.Name = "Criteria" Then
            mdiChild.Activate()
            Exit Sub
        End If
    Next
    Dim frmClientConfig As New Criteria
    frmClientConfig.MdiParent = Me
    frmClientConfig.Show()
End Sub
4

1 回答 1

1

例如,您的 MenuItem Click 可能未正确连接,Handles... 子句可能指的是较旧的名称,或者它可能只是被禁用。如果事件没有触发,则它是一个菜单。尝试为代码创建一个新的菜单项。

编辑

如果事件没有触发,很可能是因为 a)菜单项未启用(可能)它在代码中被禁用,b)它缺少似乎不是这种情况的 HANDLER 或 C)ELSE 附加了该处理程序或D) 引用了错误的形式

编辑编辑

好的,所以我们有多个 MDI 表单。基于 AddToolStripMenuItem,它应该是这样的:

Private Sub ManageCalculationsToolStripMenuItem_Click(sender As Object, _
        e As EventArgs) Handles ManageCalculationsToolStripMenuItem.Click

        frmClientConfig.Panel_Manage_Calculations.Show()
End Sub

Criteria 是表单名称(Class),实例名称是frmClientConfig. 您将需要修改此表单的处理方式:

    private frmClientConfig As Criteria      ' at the top of the MDI parent

在菜单添加点击:

   frmClientConfig = New Criteria
   frmClientConfig.MdiParent = Me
   frmClientConfig.Show()

这是必需的,以便菜单单击将知道 afrmClientConfig是什么。问题是您发出的Show是类而不是实例(这似乎应该引发错误)。当心NEW应该在哪里使用!

于 2013-10-10T19:46:08.867 回答