如何在加载应用程序时显示图像
我有和应用程序窗口forms.net和我的form1花了很多时间出现,因为在它的事件form1_Load
做了很多操作。
我的目标是在操作完成时显示图像。
private void form1_Load(object sender, EventArgs e) { methode1(); }
虽然我的methode1()正在工作,我的表格没有显示,我想在我的methode1()工作时在屏幕上显示图像,因为当methode1()工作时,屏幕上什么也没有。
.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(); }
使用静态图像创建另一个表单,仅用于加载,并在应用程序开始加载之前显示它,然后销毁它。 总是在顶部,没有边框是这种事情的通常设置。
试试这个代码
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在后台线程中执行操作以及其他很酷的function
http://msdn.microsoft.com/en-us/data/gg577609.aspx
为了使此代码有效,您需要引用两个nuget包:Rx和Rx窗体
(闪屏c# – google it)
这是我刚发现的: http : //msdn.microsoft.com/en-us/library/aa446493.aspx
使用内置的SplashScreen类怎么样?
http://msdn.microsoft.com/en-us/library/system.windows.splashscreen.aspx