Предотвращение закрытия старой формы до открытия новой формы - PullRequest
0 голосов
/ 30 января 2020

Очень простой / простой вопрос, я уверен, еще более простой ответ, но я просто не могу понять это. У меня есть две формы, между которыми пользователь может переключаться, используя соответствующую ссылку меню в каждой форме. Я хочу, чтобы предыдущая форма оставалась видимой на экране, пока не отобразится новая форма. В своем текущем состоянии форма исчезает за пределами экрана примерно на 3/4 секунды, прежде чем показывается новая, и с точки зрения пользовательского интерфейса / дизайна я бы хотела, чтобы она оставалась на экране.

I ' В настоящее время я использую приведенный ниже код для закрытия и открытия форм:

form1.Show()
Me.Close()

form2.Show()
Me.Close

Я попытался поэкспериментировать с ShowDialog(), который, кажется, сохраняет его на экране при первом запуске, но щелкает обратно в форму во второй раз. время говорит об ошибке:

System.InvalidOperationException: «Форма, которая уже видна, не может быть отображена как модальное диалоговое окно. Установите свойство visible формы в false перед вызовом showDialog. '

Есть ли простая строка кода для достижения того, что я хочу здесь?

Ответы [ 2 ]

0 голосов
/ 31 января 2020

Публикация ответа в случае, если есть причина наследования, это не лучшая практика или не избегать этого, но использование приведенного ниже ускорило его:

Private Sub menu1_Click(sender As Object, e As EventArgs) Handles menu1.Click
    form1.Show()
    form1.Refresh()
    Me.Close()
End Sub

Это было вдохновлено добавлением в Application.DoEvents рабочего , так скорректировал код, чтобы избежать этой страшной линии.

0 голосов
/ 31 января 2020

Если в событии Form.Load есть некоторый длительный код (например, если данные извлекаются из базы данных), то может помочь следующий код.

Private Sub Form2_Shown(sender As Object, e As EventArgs) Handles Me.Shown
    'Assuming default instances
    Form1.Close()
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...