Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net Visual Basic SplashScreen不使用版本选择窗体_Vb.net_Visual Studio 2012 - Fatal编程技术网

Vb.net Visual Basic SplashScreen不使用版本选择窗体

Vb.net Visual Basic SplashScreen不使用版本选择窗体,vb.net,visual-studio-2012,Vb.net,Visual Studio 2012,我会尽量保持简短,不遗漏细节。我在Visual Stuido 2012中使用.NET 4.5 我有一个启动屏幕,一个“版本选择”表单作为我的主要启动表单,然后根据用户的选择从那里以两种方式分支出来 版本选择可以保存用户的选择以备将来使用,并检查他们是否保存了设置,如果保存了设置,则跳过选择表单并直接转到他们的版本。我遇到的问题是,当用户有一个保存的版本时,启动屏幕保持打开状态,除非我强迫它关闭,否则它永远不会关闭 我尝试在应用程序事件中使用最小SplashScreen时间,但这没有帮助。仅当用户

我会尽量保持简短,不遗漏细节。我在Visual Stuido 2012中使用.NET 4.5

我有一个启动屏幕,一个“版本选择”表单作为我的主要启动表单,然后根据用户的选择从那里以两种方式分支出来

版本选择可以保存用户的选择以备将来使用,并检查他们是否保存了设置,如果保存了设置,则跳过选择表单并直接转到他们的版本。我遇到的问题是,当用户有一个保存的版本时,启动屏幕保持打开状态,除非我强迫它关闭,否则它永远不会关闭

我尝试在应用程序事件中使用最小SplashScreen时间,但这没有帮助。仅当用户保存了版本时才会发生这种情况

有什么想法吗?我可以根据需要发布更多细节。提前谢谢


根据评论

Private Sub Version_Selection_Form_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
    If My.Settings.VersionSelected = "OSRS" Then 
        'Code to close initial form and load old school 
        Dim OSmain As New OldSchoolMain 
        OSmain.Show() 
        Me.Close() 
    ElseIf My.Settings.VersionSelected = "RS3" Then 
        'Code to close intital form and load RS3 
    End If 
End Sub

Private Sub btnConfirmSelection_Click(sender As Object, e As EventArgs) Handles btnConfirmSelection.Click 
    If radOSRS.Checked = True Then 
        If cboxSaveVersion.Checked = True Then 
            My.Settings.VersionSelected = "OSRS" 
        End If 
        Dim OSmain As New OldSchoolMain 
        OSmain.Show() 
        Me.Close() 
    ElseIf radRS3.Checked = True Then 
        If cboxSaveVersion.Checked = True Then 
            My.Settings.VersionSelected = "RS3" 
        End If 
        Dim RS3main As New RS3Main 
        RS3main.Show() 
        Me.Close() 
    End If 
End Sub 

查看您的代码,我认为您的启动屏幕的问题在于您在启动表单完成之前关闭了它。我会尝试使用表单事件,因为它在SplashScreen完成之前不会被触发,我也会最小化表单以避免它在屏幕上短暂闪烁。看看这样的东西是否适合你

Private Sub Splash_Shown(sender As Object, e As EventArgs) Handles MyBase.Shown
    If My.Settings.StartupForm = "Form1" Then
        Dim frm As New Form1
        frm.Show()
        Me.WindowState = FormWindowState.Minimized
        Me.ShowInTaskbar = False
        Me.Close()
   ElseIf My.Settings.StartupForm = "Form2" Then
        Dim frm As New Form2
        frm.Show()
        Me.WindowState = FormWindowState.Minimized
        Me.ShowInTaskbar = False
        Me.Close()
    End If
End Sub

如何创建/显示初始屏幕,以及如何显示不同的表单。我正在使用项目属性添加初始屏幕。选择的版本是主要的启动表单,一旦用户做出选择或读取他们保存的设置,它将创建一个与他们的选择相关的表单的新实例并显示它。如果出现“版本选择”屏幕,它将创建新实例,显示新实例,然后自行关闭。@MarkHall是否正在使用应用程序框架,在我继续构建时是否需要进行重大重新编码或导致问题?我的代码设置有点不同,它使用了两个单选按钮和一个复选框来保存选项。如果radio1.Checked=True,那么如果cboxSaveVersion.Checked=True,那么My.Settings.VersionSelected=“value1”如果Dim formV1作为新表单formV1.Show()Me.Close()ElseIF结束(第二个选项的代码类似)如果使用模块是最好的方式,那么结束?这就是为什么我删除了我的答案,它会删除easy splash screen,并要求您从头开始创建和实现一个。我过去也这样做过。如果您发布用于显示屏幕的代码,我可能会知道发生了什么。私有子版本\u选择\u表单\u加载(发件人作为对象,e作为事件参数)处理MyBase.Load If My.Settings.VersionSelected=“OSRS”然后“编写代码关闭初始表单并将旧学校Dim OSmain加载为新的旧学校Dim OSmain.Show()Me.close()ElseIf My.Settings.VersionSelected=“RS3”然后”编写代码关闭初始表单并加载RS3 End If End Sub