项目启动时显示图像 - program.cs?
我有一个小的Windows窗体项目,现在Iam正在寻找项目启动时显示图像,我的意思是Program.cs项目启动时显示图像 - program.cs?
这可能吗?
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Image MyPrgImage = Image.FromFile("C:\\Temp\\Images\\For_Network.gif");
??????
Application.Run(new Form1());
}
当然...添加新的WindowsForm
到您的项目,把它SplashImageForm
。将PictureBox
控件添加到它,并添加您想要的图像。调整的形式,设置这些SplashImageForm
属性:
FormBorderStyle - None
ShowInTaskBar - false
StartPosition - CenterScreen
然后你想显示Form1上之前的形式和超时后关闭它已过期......像这样的例子:
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
SplashImageForm f = new SplashImageForm();
f.Shown += new EventHandler((o,e)=>{
System.Threading.Thread t = new System.Threading.Thread(() =>
{
System.Threading.Thread.Sleep(2000);
f.Invoke(new Action(() => { f.Close(); }));
});
t.IsBackground = true;
t.Start();
});
Application.Run(f);
Application.Run(new Form1());
}
编辑 现在,有一个新线程在System.Threading.Thread.Sleep(2000)
上阻塞2秒,主线程被允许在Application.Run(f)
上按原样阻塞,直到SplashImageForm
未关闭。所以图像被主线程加载并且GUI响应。
当超时结束时,Invoke()
方法被调用,所以窗体所有者的主线程关闭它。如果这不在这里,将会抛出跨线程异常。
现在图像显示2秒,然后显示Form1。
您需要一个简单的窗体,可能带有一个PictureBox来加载和显示图像。然后在主窗体加载后将其删除。
但问题是picturebox显示没有问题。但图像不显示与picturebox ... – Paramu
你的意思是一个闪屏,对不对?
考虑添加对Microsoft.VisualBasic的引用(如果尚未完成),然后设置WindowsFormsApplicationBase.SplashScreen
属性。
数点:
- Windows窗体不具有一个简单而直接闪屏的支持。
即使上面的解决方案需要几秒钟,直到加载.net框架才能显示启动画面。 - 请参阅此question here了解更多示例和重要说明。
- 看到这个CodeProject.com sample自定义解决方案
只需从选项设置下面添加一个Windows窗体(让表单的名称是imgsplash)&: -
FormBorderStyle - 无ShowInTaskBar - 假
中StartPosition - 中心屏幕
以这种形式设置背景图像[你想在应用程序启动时显示的图像]
- 现在在程序中。CS添加以下步骤: -
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
imgsplash f = new imgsplash();
f.Show();
System.Threading.Thread.Sleep(2000);
f.Close();
Application.Run(new Form1());
}
你的意思是像一个闪屏? – BoltClock
您正在创建一个启动画面。看看这个:http://www.google.com/search?gcx=w&sourceid=chrome&ie=UTF-8&q=c%23+splash+screen –