Как я могу сделать свою vb.net winform паузу на несколько секунд - PullRequest
0 голосов
/ 08 марта 2011

Я бы хотел сделать паузу и показать мой экран-заставку на несколько мгновений при загрузке программы.

Как я могу это сделать в winform vb.net ...

Ответы [ 2 ]

2 голосов
/ 08 марта 2011

Хорошо, представьте, что ваша основная форма называется Form1, а дорогая / медленная инициализация выполняется в Load, а форма заставки называется Splash.

Вы бы хотели что-то вроде следующего:

Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    Dim StartTime = DateTime.Now
    Dim Splash = New System.Threading.Thread(AddressOf SplashThread)
    Splash.Start()

    'Do lots of initialization - you wouldn't have this sleep in the real application
    System.Threading.Thread.Sleep(10000)

    Dim EndTime = DateTime.Now
    Dim Diff = EndTime - StartTime
    If Diff.TotalSeconds < 5 Then
        'Splash hasn't been shown for very long - a little sleep is warranted.
        System.Threading.Thread.Sleep(New TimeSpan(0, 0, 5) - Diff)
    End If
    SplashForm.Invoke(New Action(AddressOf SplashForm.Close))
    Splash.Join()
End Sub

Private SplashForm As Splash

Private Sub SplashThread()
    SplashForm = New Splash()
    Application.Run(SplashForm)
End Sub
1 голос
/ 08 марта 2011

Быстрое и грязное решение:

  1. Показать форму заставки.
  2. Использовать Thread.Sleep (обратите внимание, что в течение этого времени обновления пользовательского интерфейса не будут выполняться, так что если ваш пользовательгде-то щелкает, ваш экран-заставка может выглядеть уродливо).
  3. Закройте форму экрана-заставки.

Хорошее решение:

  1. Показать форму экрана-заставки (без элементов пользовательского интерфейса, которые пользователь может использовать для закрытия формы).
  2. Используйте элемент управления таймера в форме для тайм-аута "нескольких моментов".
  3. Закройте форму заставки, когда таймер истекает.

Удобное решение:

  1. Показать форму заставки.
  2. Попросите вашу программу сделать полезную работу.
  3. Закройте форму заставки.

Обратите внимание, что заставки обычно служат цели: они развлекают пользователя, пока программа выполняет некоторую работу.Если вашей программе не требуется выполнять начальную работу, заставка просто раздражает, поскольку она тратит время пользователя.

...