2012-06-05 1 views
0

У меня возникли проблемы в приложении для Windows Form. У меня есть 2 формы:Как я могу закрыть детскую форму при нажатии на родительскую форму?

первый Главная/Родитель Форма

второй Sub/Форма ребенка (Меню)

Проблема:

Я хочу, чтобы закрыть мой 2-ой формы (которая открывается на вершине 1 формы), когда я нажимаю на 1-ю форму.

+0

Выработать ур вопрос. отправьте код там .. –

ответ

1

Вы можете зарегистрироваться на главной форме «на фокус» событие (данная ссылка является основной учебник, который показывает, как зарегистрировать события в VB: http://www.homeandlearn.co.uk/net/nets10p1.html)

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

Если добавить код, я буду иметь возможность быть более конкретным ...

+0

Мои формы - это форма моделей. Родительская форма деактивируется, когда открывается дочерняя форма, и пока пользователь не нажмет кнопку «ОК» или «Отменить» в дочерней форме (мы должны закрыть дочернюю форму для активации родительской формы). и активированная форма не работала в этой ситуации. – Kashif

+0

Итак, вы можете просто зарегистрироваться в дочерней форме «Потерянный фокус» - http://msdn.microsoft.com/en-us/library/system.windows.forms.control.lostfocus.aspx и просто написать «this.Close();» (в синтаксисе vb). вы можете даже контролировать, как закрыть форму (значение DialogResult), прежде чем закрыть ее. – eyossi

0

Когда у показать ребенку-формы и есть, чтобы сохранить ребенка-форму в переменной в родительской форме. по щелчку на родительской форме, вы можете использовать переменную, чтобы закрыть или утилизировать ваш ребенок-форма

1

Что-то, как это должно работать:

Public Class Form1 
    Private childForm As Form2 

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
     childForm = New Form2() 
     childForm.Show() 
    End Sub 

    Private Sub Form1_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Activated 
     If childForm IsNot Nothing Then 
      childForm.Hide() 
     End If 
    End Sub 
End Class 
+0

Родительская форма деактивируется, когда открывается дочерняя форма, и пока пользователь не нажмет кнопку «ОК» или «Отмена» в дочерней форме (это значит, что мы должны закрыть дочернюю форму для активации родительской формы). и активированная форма не работала в этой ситуации. – Kashif

+0

Моя форма Форма модели. – Kashif

+0

Я смущен. Я думал, вы сказали, что хотите, чтобы форма ребенка ушла, когда вы нажимаете на родителя, но теперь вы говорите мне, что вы не можете щелкнуть по родительскому вопросу вообще. Я не понимаю, какова ваша фактическая проблема. Я подозреваю, что у вас есть несколько проблем, которые вы размываете вместе, и это запутывает. Я не знаю, что вы подразумеваете под формой «Модели». Вы имеете в виду форму, являющуюся представлением для модели MVC? –

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