0

两种形式 1.“SplashForm” 2.“MainForm”

当“SplashForm”进程结束时,我想加载“MainForm”作为“SplashForm”进程的后台进程我只想显示应该已经加载的“MainForm”代码

VB代码:

Imports System
Imports System.Threading

Public Class MultiThreading
    ' Global declaration 
    Dim mf As New MainForm
    'Thread Declaration
    Dim tm As New Thread(AddressOf LoadProcess)
    Dim ts As New Thread(AddressOf Splashprocess)

    Private Sub Epaper_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.Opacity = 0
        tm.Start()
        ts.Start()
    End Sub

    Sub  LoadProcess()
        mf.Show()
        mf.Hide()
    End Sub

    Sub Splashprocess()
        For i As Integer = 0 To 1000
            Me.Opacity += 0.01
        Next
        If Me.Opacity = 1 Then
            mf.Show()
            Me.Hide()
        End If
    End Sub
    End Class
4

1 回答 1

1

为什么不从主窗体调用 SplashScreen?你的主窗体一开始应该是不可见的。加载主表单后,您可以首先将启动画面显示为独立表单(不是子表单),然后继续加载主表单。完成所有过程后,关闭启动画面并显示主窗体。

因此,您将避免使用自制线程。

这是一个伪代码示例:

In Main_Form class                // which is invisible
{
    When Main_Form is loaded
    {
        Show SplashScreen

        Proceed on loading everything else

        Hide SplashScreen
        Show Main_Form
    }
}
于 2012-05-19T06:28:43.923 回答