制作winforms 2.0启动画面

时间:2010-10-20 20:43:45

标签: c# winforms

在C#/ .NET 2.0 winforms应用程序中触发启动画面(它自己消失)的最简单方法是什么?看起来像VisualBasic程序集(可以从C#调用)有一种方法可以做到这一点,但是有没有简单的例子?

由于

2 个答案:

答案 0 :(得分:1)

有一个关于Code Project的详细教程,它将启动画面放在自己的线程上,以便主应用程序可以继续加载。

答案 1 :(得分:0)

最简单的方法是创建一个表单并允许它在显示一段时间后自行终止。但是,如果您希望此表单能够在应用程序初始化时显示某些应用程序加载进度,并且在应用程序真正可以使用后3秒内消失,则事情变得更加复杂。

想法包括将启动画面放在与主应用程序完全不同的线程上。它的线程函数应该是这样的:

    static void ThreadFunc()
    {
        _splash = new Splash();
        _splash.Show();
        while (!_shouldClose)
        {
            Application.DoEvents();
            Thread.Sleep(100);
            if (new Random().Next(1000) < 10)
            {
                _splash.Invoke(new MethodInvoker(_splash.RandomizeText));
            }
        }
        for (int n = 0; n < 18; n++)
        {
            Application.DoEvents();
            Thread.Sleep(60);
        }
        if (_splash != null)
        {
            _splash.Close();
            _splash = null;
        }
    }

然后,您可以使用它来显示和隐藏它:

    static public void ShowSplash()
    {
        _shouldClose = false;
        Thread t = new Thread(ThreadFunc);
        t.Priority = ThreadPriority.Lowest;
        t.Start();
    }
    internal static void RemoveSplash()
    {
        _shouldClose = true;
    }