2013-09-16 3 views
0

Я столкнулся с странным случаем в VB6, то есть когда я показываю форму в отношении другого OwnerForm, если бы я сделал это два или три раза, например, когда я закрываю все дочернее формы, вдруг PropertyForm исчезают на заднем плане (теряют фокус, а предыдущее приложение будет сверху), и мне придется щелкнуть по нему на панели задач, чтобы снова отобразить форму!VB6 Form.Show with OwnerForm

Быстрая выборка будет что-то вроде этого:

Private Sub Command1_Click() 
    Command1.Enabled = False 
    Dim frm As New Form1 
    frm.Show 0, Form1 
End Sub 

Есть ли решение для этого?

Спасибо.

ответ

0

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

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

Дайте мне знать, как вы поживаете.

+0

Hi Cometbill, Спасибо за обновления. Да, это идея, которая должна показывать столько форм, сколько мне нужно немодуально (речь идет о больших приложениях здесь). И я сталкиваюсь с этой проблемой все время на самом деле (не иногда), когда вы загружаете более двух форм ... Я использовал _QueryUnload, чтобы скрыть форму, а не разгружать ее, но проблема все еще существует (установка ZOrder для формы будет не выглядят логичными, так как я не знаю, сколько форм загружено, поэтому я не буду знать, когда устанавливать ZOrder). Во-вторых, я считаю, что скрытие вызовет проблемы с памятью, особенно когда есть большое количество форм. –

+0

. Вы только скрываете форму до тех пор, пока требуется, чтобы установить ZOrder в родительской форме, но похоже, что родительская форма скрывается других приложений, или он скрывается (или сидит поверх) других форм ребенка. В этом случае вам может понадобиться . ZOrder 0 или ZOrder 1 - я не помню, какой. – cometbill

+0

Родительская форма будет скрыта за другими приложениями (например, Google Chrome) при закрытии последней дочерней формы. Спасибо –

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