Панель не отображается при вызове из MenuStrip

У меня есть Panel по имени Panel_Manage_Calculations на Form по имени Criteria. У меня есть свойство visible по умолчанию False. Когда я вызываю его из своего MenuStrip под названием MenutStrip_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 — это 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

person gromit1    schedule 10.10.2013    source источник
comment
если вы установите перерыв в menu_Click, он сработает? Возможно, в предложении Handles указана неправильная ссылка. (На самом деле похоже, что должно быть наоборот, потому что щелчок по кнопке не имеет пункта handles, в то время как меню делает.)   -  person Ňɏssa Pøngjǣrdenlarp    schedule 10.10.2013
comment
тогда он не подключен правильно....удалите саб и создайте его заново   -  person Ňɏssa Pøngjǣrdenlarp    schedule 10.10.2013


Ответы (1)


Ваш MenuItem Click может быть неправильно подключен, например, предложение Handles... может ссылаться на более старое имя или оно может быть просто отключено. Если событие не срабатывает, это проблема меню. Попробуйте создать новый пункт меню для кода.

РЕДАКТИРОВАТЬ

Если событие не срабатывает, это, вероятно, потому, что а) пункт меню не включен (ВОЗМОЖНО), он отключен в коде, б) ему не хватает обработчика, что кажется не так, или В) что-то ДРУГОЕ имеет этот обработчик или D) указана неправильная форма

РЕДАКТИРОВАТЬ РЕДАКТИРОВАТЬ

Итак, у нас есть несколько форм MDI. На основе AddToolStripMenuItem это должно выглядеть так:

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

        frmClientConfig.Panel_Manage_Calculations.Show()
End Sub

Критерии — имя формы (класс), имя экземпляра — frmClientConfig. Вам нужно будет переработать способ обработки этой формы:

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

В меню Добавить нажмите:

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

это необходимо для того, чтобы щелчок меню знал, что такое frmClientConfig. Проблема заключалась в том, что вы выдавали Show классу, а не экземпляру (что, похоже, должно вызывать ошибку). ОСТЕРЕГАЙТЕСЬ того, где предполагается использовать NEW!

person Ňɏssa Pøngjǣrdenlarp    schedule 10.10.2013
comment
Нет, Menu не находится в той же форме, что и Button и Panel. - person gromit1; 11.10.2013
comment
Правка не сработала, и они оба стреляют. У меня была такая же идея. - person gromit1; 11.10.2013
comment
Я получил это сообщение об ошибке Additional information: Conversion from string "Criteria" to type 'Integer' is not valid. - person gromit1; 11.10.2013