2012-01-24 12 views
7

मेरे पास एप्लिकेशन और उस फ़ॉर्म पर एक स्पलैश स्क्रीन है। मेरे पास टाइमर हैविनफॉर्म स्पलैश स्क्रीन - वीबी.नेट - टाइमर

Private Sub Splash_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 

    SplashTimer.Start() 

    ' Set application title 
    ' Set Version 
Me.Show() 
     'Me.Refresh() 
     'System.Threading.Thread.Sleep(2000) 
     'Login.ShowDialog() 
     'Login.AllowTransparency = True 
    End Sub 

अंतराल टाइमर पर 5000.

Private Sub SplashTimer_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SplashTimer.Tick 
     SplashTimer.Stop() 
     Login.Show() 
     Login.AllowTransparency = True 
     Me.Hide() 
    End Sub 

मैं यहाँ ब्रेकपाइंट सेट करने के लिए सेट कर दिया जाता है, लेकिन यह इस ब्रेकपाइंट हिट करने के लिए प्रतीत नहीं होता। मैंने मुझे असम्बद्ध किया। रीफ्रेश()

स्पलैश स्क्रीन बंद हो रही है। फिर लॉगिन जारी रखें बटन के साथ दिखाया गया है। जब आप बटन

MainMenu.Show() 'this form should be shown as this is the main window of the application but it's not showing. 
      Me.Close() 'closes login window 

जारी रखने के लिए क्लिक करें कोई विंडो दिखाई देती है और आवेदन व्यतीत कर रहा है। किसी भी इनपुट की सराहना की जाएगी।

+0

क्या अंतर्निहित स्पलैशस्क्रीन फॉर्म से बचने का कोई कारण है? – LarsTech

+0

यह आवेदन की वर्तमान स्थिति है। मैं निर्मित टेम्पलेट का उपयोग कर सुझाव दे सकता हूं। – kalls

+0

@ लार्सटेक - यह टेम्पलेट में बनाया गया है। – kalls

उत्तर

13

मैं करूंगा उपयोग करने का सुझाव स्पलैश स्क्रीन कि विजुअल स्टूडियो द्वारा प्रदान की जाती है में बनाया गया:

"परियोजनाओं" मेनू पर जाएँ और "विंडोज फार्म जोड़ें" और स्पलैश स्क्रीन टेम्पलेट का चयन करें का चयन करें:

enter image description here

तब परियोजना के अनुप्रयोग सेटिंग्स में, उस रूप का चयन स्प्लैश स्क्रीन होने के लिए:

enter image description here

आपका स्टार्टअप फॉर्म आपका लॉगिन फॉर्म होना चाहिए, न कि स्प्लैश स्क्रीन फॉर्म।

अद्यतन:

अपने मेरा परियोजना के आवेदन स्क्रीन से पिछले छवि पर "आवेदन घटनाक्रम देखें" बटन पर क्लिक करें और MinimumSplashScreenDisplayTime मान सेट करने के लिए इस कोड जोड़ें:

Imports System.Collections.ObjectModel 

Namespace My 
    Partial Friend Class MyApplication 
    Protected Overrides Function OnInitialize(commandLineArgs As ReadOnlyCollection(Of String)) As Boolean 
     Me.MinimumSplashScreenDisplayTime = 5000 
     Return MyBase.OnInitialize(commandLineArgs) 
    End Function 
    End Class 
End Namespace 

आपका छप स्क्रीन 5000 मिलीसेकंड, या 5 सेकंड के लिए स्क्रीन पर रहेगी।

+0

काम करता है यह टेम्पलेट में बनाया गया है। – kalls

+0

@kalls मैंने स्पलैश स्क्रीन के लिए देरी जोड़ने के लिए एक उदाहरण के साथ उत्तर अद्यतन किया है। कोई टाइमर की जरूरत नहीं है। – LarsTech

3

Public Sub Main विधि के साथ अपने प्रोग्राम में मॉड्यूल जोड़ने का प्रयास करें। उप परियोजना में अपने प्रोजेक्ट स्टार्टअप विकल्प सेट करें।

Module Module1 
    Dim frmSplash As SplashScreen1 
    Dim frmLogin As Login 
    Dim frmMain As MainMenu 
    Dim splashTimer As Timer 

    Public Sub Main() 
     splashTimer = New Timer() 
     AddHandler splashTimer.Tick, AddressOf TimerTick 
     splashTimer.Interval = 5000 
     splashTimer.Start() 
     frmSplash = New SplashScreen1 
     frmSplash.ShowDialog() 

     frmLogin = New Login 
     Dim result As DialogResult = frmLogin.ShowDialog 
     If result <> DialogResult.OK Then 
      End 
     End If 

     frmMain = New MainMenu 
     frmMain.ShowDialog() 

    End Sub 
    Private Sub TimerTick(sender As Object, e As EventArgs) 
     splashTimer.Stop() 
     frmSplash.Close() 
    End Sub 
End Module 

परियोजना सेटिंग्स: फिर आप की तरह कुछ कर सकते हैं

+0

मैंने इस श्री हॉल की कोशिश नहीं की है। पिछला दृष्टिकोण मेरे लिए काम किया। मैं आपके उत्तर की सराहना करता हूं। – kalls

0

मैं क्या पाया लोड घटना/विधि के पूर्ण होने तक कि टाइमर ईवेंट निकाल दिया नहीं कर रहे हैं। मैंने सक्रिय ईवेंट/विधि में थ्रेड स्लीप डाला और यह मुझे वांछित परिणाम देता है। तो मैं दो अलग-अलग पृष्ठभूमि छवियों के साथ एक स्पलैश स्क्रीन दिखाने की कोशिश कर रहा हूं और यह ठीक काम करता है।

संबंधित मुद्दे