我有和应用程序窗口形式.net和我的form1需要花费很多时间才能出现,因为在它的事件中form1_Load
做了很多操作。
我的目标是在操作完成时显示图像。
private void form1_Load(object sender, EventArgs e)
{
methode1();
}
当我的methode1()正在工作时,我的表单没有显示,我想在我的methode1()工作时在屏幕上显示图像,因为当methode1()工作时,屏幕上没有任何内容。
答案 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窗体
答案 3 :(得分:0)
(启动画面c# - google it)
这是我刚发现的: http://msdn.microsoft.com/en-us/library/aa446493.aspx
答案 4 :(得分:0)
如何使用内置的SplashScreen类?
http://msdn.microsoft.com/en-us/library/system.windows.splashscreen.aspx