2014-01-24 3 views
2

Привет, хороший день для всех вас. У меня есть эта программа, которая представляет собой игру с пустяками, в которой я хочу поместить форму в качестве заставки с помощью формы. Show() и form.hide, и я хочу спросить, как я могу установить форму, показывая ее как минимум на 3 секунды и спрячу ее снова? Заранее спасибоForm.show и Form.Hide интервал времени Vb.Net

Private Sub submit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles submit.Click 
    If Label1.Text = "Who invented the airplane?" And TextBox1.Text = "third" Then 

     Label2.Text = (Label2.Text) + 1 

     correctmsg.Show() 
     correctmsg.Hide() 

     Label1.Text = "Who invented the telephone?" 
     Return 'Don't do any more checks this time around 

    ElseIf Label1.Text = "Who invented the airplane?" Then 
     'Reason ElseIf (In case the question was 'who invented the telephone' then the first errormessage should not not be shown) 
     wrongmsg.Show() 
     Return 

    End If 

ответ

1

положить таймер timer1 на splashscreenFORM установить его enabled=false двойного щелчка на timer1 поставьте этот код на него me.close()

сейчас из формы где вы хотите это сделать

dim mysplash as new splashscreenFORM 
mysplash.timer1.Interval = 3000 
mysplash.timer1.start() 
mysplash.show() 

форма выплеска должна появится в течение 3 сек

+0

благодарит за то, что ваше решение сработало :) – TheNewbie

+0

@ user3231002, если это ответит на ваш вопрос, тогда вы должны отметить его так, чтобы другие пользователи с тем же вопросом могли видеть ответ, а также чтобы ppl поможет вам в будущем. – davidsbro

+0

@ davidsbro ok sir, потому что я просто новый здесь, я не знал, как отметить: p – TheNewbie

1

Вы можете использовать Thread.sleep(3000), если вы не хотите, чтобы ваш GUI, чтобы сделать что-нибудь еще. Если вы хотите, чтобы ваш GUI нормально функционировать, когда эта correctmsg формы показана, используйте следующий код

correctmsg.Show() 

Dim SW2 As New Stopwatch 
    SW2.Start() 
    Do 
     Application.DoEvents() 
    Loop Until SW2.ElapsedMilliseconds >= 3000m 
correctmsg.Hide() 
2

Попробуйте это:

Public tTimer As Timer 
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load 
    tTimer = New Timer() 
    tTimer.Interval = 3000 
    tTimer.Enabled = False 
    AddHandler tTimer.Tick, AddressOf OnLayouttimerTick 
End Sub 

Private Sub submit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles submit.Click 
If Label1.Text = "Who invented the airplane?" And TextBox1.Text = "third" Then 

    Label2.Text = (Label2.Text) + 1 

    correctmsg.Show() 
    tTimer.Start() 

    Label1.Text = "Who invented the telephone?" 
    Return 'Don't do any more checks this time around 

ElseIf Label1.Text = "Who invented the airplane?" Then 
    'Reason ElseIf (In case the question was 'who invented the telephone' then the first errormessage should not not be shown) 
    wrongmsg.Show() 
    Return 

End If 

Private Sub OnLayouttimerTick(sender As Object, e As EventArgs) 
    correctmsg.Hide() 
End Sub 
+0

Этот метод имеет одну проблему. Если кто-то снова нажимает кнопку до того, как форма correctmsg будет закрыта, второй раз она закроется до 3s –

+0

ok .. Спасибо, что обновили меня! –

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