如何在加载应用程序时显示图像

时间:2012-05-30 19:39:03

标签: c# .net image events loading

我有和应用程序窗口形式.net和我的form1需要花费很多时间才能出现,因为在它的事件中form1_Load做了很多操作。

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

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

当我的methode1()正在工作时,我的表单没有显示,我想在我的methode1()工作时在屏幕上显示图像,因为当methode1()工作时,屏幕上没有任何内容。

5 个答案:

答案 0 :(得分:2)

创建另一个表单,仅用于加载,带有静态图像,并在应用程序开始加载之前显示它,然后销毁它。总是在顶部,没有边框是这种事情的常用设置。

答案 1 :(得分:2)

.net中的所有视觉内容都是在表单上完成的。您可以通过创建一个包含图像的小表单来执行此操作,该表单在module1()之前和完成module1()之后将其加载。就在下面..

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();
}

答案 2 :(得分:2)

试试此代码

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();
    }

此代码使用Microsoft Rx在后台线程中执行操作以及其他很酷的功能

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

为了使这段代码有效,你需要引用两个nuget包:Rx和Rx windows窗体

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

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

答案 3 :(得分:0)

(启动画面c# - google it)

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

答案 4 :(得分:0)