2016-11-11 2 views
1

В настоящее время у меня есть форма, объявленная как NewMDIChild = frm1. Внутри frm1 я открываю новую форму, которая составляет около 1/3 от размера frm1 - это имя формы frmX. Вот как я его открываю ....Включение/выключение формы MDiParent после закрытия формы .showDialog()

 Me.Enabled = False 
    'Pass globals to be used in search query 

    Dim frmX As New FrmX() 
    frmX.ShowDialog() 

Таким образом, я включаю этот код с помощью кнопки button_Click на моем Frm1. Все работает отлично. То, что я пытаюсь сделать, это нажать кнопку на frm1 - я пытаюсь отключить frm1 - показать frmX в .ShowDialog. На FrmX у меня есть кнопка CLOSE, так что, когда пользователь нажимает CLOSE на нем, я могу включить = true frm1, который находится в фоновом режиме. Я пытаюсь сделать это на мероприятии ACTIVATED, но он не распознает его. Как бы я сделал что-то подобное ...

Не уверен, что мне нужно вызвать функцию или что-то из frmx или если в frm1 есть событие, которое можно использовать для его включения. Я пробовал GotFocus, MouseHove - ничего не работает

+0

Если вы показываете диалоговое окно, почему вы также должны отключить любую другую форму? – Plutonix

+0

Per Spec sheet - они хотят, чтобы фоновая форма была отключена - поскольку даже если frmX отображает диалог, все кнопки на frm1 не выглядят так, как будто они отключены, а просто не доступны. Я могу отключить их при нажатии кнопки, просто интересно, если я закрываю frmX, как я могу объявить frm1.enable = true – BobSki

+0

Если форма отключена, она не будет генерировать MouseHover или любые другие события. Поместите 'Me.Enabled' сразу после' ShowDialog' - это будет следующая строка для выполнения, когда dlg закрывается. Также этот диалог должен быть в блоке использования – Plutonix

ответ

1

Как только форма отключена, большинство (если не все) событий не срабатывают. Следующая строка для выполнения будет ничего после того, как ShowDialog(), так что вы можете включить его там:

Me.Enabled = False 
Using dlg As New FrmX 
    dlg.ShowDialog() 
End Using 
Me.Enabled = True 

Обратите внимание, что, когда форма отображается с помощью ShowDialog() он автоматически не расположенный, поэтому код использует Using блок сделать так ,

+0

Спасибо, хороший сэр. Всегда приятно! – BobSki

Смежные вопросы