2015-09-21 6 views
0

У меня есть 2 формы. Я хочу открыть вторую форму в последнем состоянии, когда она осталась? Я имею в виду изменения неповрежденные, измененные текстовые поля, сделанные выбор и т. Д. И т. Д. Я пытаюсь использовать .show, но он загружает форму из своего загрузочного суб, который сбрасывает форму из нового состояния.форму loading последнее состояние было до hide()

Может ли кто-нибудь вести меня здесь? Заранее спасибо

+0

Вам необходимо будет сохранить состояние каждого элемента управления и вернуть его в соответствие с тем, что они были. Сохраните информацию где-нибудь при выходе из формы и восстановите ее на form_load или form_activate. – MatthewD

ответ

2

Если вы не хотите, чтобы форма перезагружалась, не разрушайте ее.

В основной форме храните ссылку на единственный экземпляр второй формы.

Private m_Dialog As Form2 

Private Sub Command1_Click() 
    If m_Dialog Is Nothing Then Set m_Dialog = New Form2 

    m_Dialog.Show 
End Sub 

Private Sub Form_Unload(Cancel As Integer) 
    If Not m_Dialog Is Nothing Then Unload m_Dialog 
    Set m_Dialog = Nothing 
End Sub 

Во второй форме, использовать Hide(), чтобы закрыть его.

Private Sub OKButton_Click() 
    Me.Hide 
End Sub 
Смежные вопросы