我怎样才能显示图像,而我的应用程序加载是(How can i show an image while

2019-09-17 15:04发布

我有和应用程序窗口形成.net和我的Form1上花费大量的时间出现,因为在它的事件form1_Load做了很多工作。

我的目标是显示图像的同时操作被完成。

private void form1_Load(object sender, EventArgs e)
{            
    methode1();
}

虽然我methode1()工作,我的形式犯规表演,我想在屏幕上显示的图像,而我的methode1()的工作,因为在methode1()工作,没有什么在屏幕上。

Answer 1:

所有.NET中的视觉的东西是在形式完成。 您可以通过创建一个小的形式,其中包含模块1()之前,完成模块1()关闭后的图像加载它做到这一点。 略低于..

private void form1_Load(object sender, EventArgs e)
{    
        Form f = new Form();
        f.Size = new Size(400, 10);
        f.FormBorderStyle = FormBorderStyle.None;
        f.MinimizeBox = false;
        f.MaximizeBox = false;
        Image im = Image.FromFile(path);
        PictureBox pb = new PictureBox();
        pb.Dock = DockStyle.Fill;
        pb.Image = im;
        pb.Location = new Point(5, 5);
        f.Controls.Add(pb);
        f.Show();        
        methode1();
        f.Close();
}


Answer 2:

创建另一种形式,只是为了装,用静态图像,和你的应用程序开始加载之前显示它,之后摧毁它。 总在最前,并采用无边框是这样的事情通常设置。



Answer 3:

试试这个代码

using System.Reactive.Linq;

    private void RealForm_Load(object sender, EventArgs e)
    {
        var g = new Splash();

        // place in this delegate the call to your time consuming operation
        var timeConsumingOperation = Observable.Start(() => Thread.Sleep(5000));
        timeConsumingOperation.ObserveOn(this).Subscribe(x =>
        {
            g.Close();
            this.Visible = true;
        });

        this.Visible = false;
        g.ShowDialog();
    }

此代码使用微软的Rx到其他很酷的功能中执行在后台线程操作

http://msdn.microsoft.com/en-us/data/gg577609.aspx

为了让这段代码工作,你需要两个参考的NuGet包:接收和Rx Windows窗体

https://nuget.org/packages/Rx-Main/1.0.11226

https://nuget.org/packages/Rx-WinForms/1.0.11226



Answer 4:

(闪屏C# - google一下)

这是我刚发现: http://msdn.microsoft.com/en-us/library/aa446493.aspx



Answer 5:

如何使用内置的闪屏类?

http://msdn.microsoft.com/en-us/library/system.windows.splashscreen.aspx



文章来源: How can i show an image while my application is loading