C#winform窗体已经显示,但看不见的问题
在程序登录后主窗口还没打开之前我想显示一个loading...窗口,上面放一个动画图片
一开始我将一个静态图片放到loading窗口的背景,窗口能正常显示,
后来为增加效果要放置动画图片,但窗口的背景不支持动画,于是添加了一个picturebox控件,
将.gif动画加载到picturebox中,可这时调试时loading窗口已经打开了,但picturebox部分成了透明的,程序启动的部分代码如下:
Login fl = new Login();
if (fl.ShowDialog() == DialogResult.Cancel)
{
spFlash flash = new spFlash();
flash.Show();
//其他代码处理.........................................
//其他代码处理.........................................
flash.Close();
Application.Run(new PersonMain());
}
但我在主窗口中的某个菜单中打开spFlash窗口,效果一切正常,如果我将上面代码中的flash.Show();改为flash.ShowDialog();窗口就能显示正常了,但这样就不能自动关闭了,各位高手给个解决办法把!顺便说一下原因。
问题点数:20、回复次数:5Top
1 楼kssys()回复于 2006-06-02 10:37:12 得分 0
你的窗口并非没有显示,而是被其它窗口挡住了。
flash.Show();
flash.BrindToFront();Top
2 楼SeptemberSun(九月的阳光)回复于 2006-06-02 10:49:07 得分 0
我将上面部分代码作如下修改
spFlash flash = new spFlash();
flash.Show();
flash.Refresh();
窗口中picutrebox部分能看见了,但图片成了静止的不动了,加了flash.BrindToFront();也不管用。Top
3 楼bhwhy(苏秦)回复于 2006-06-02 10:53:52 得分 0
具体搞不清楚.hide好了.Top
4 楼SeptemberSun(九月的阳光)回复于 2006-06-02 13:42:05 得分 0
后来,我们部门的头说用一个线程打开loading窗口,但明明执行到窗口打开的方法了,可就是看不见窗口,
namespace IEWinFom
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
public class Class1
{
public void OpenSplash()
{
spFlash flash = new spFlash();
flash.Show();
flash.Refresh();
}
}
}
Login fl = new Login();
if (fl.ShowDialog() == DialogResult.Cancel)
{
Class1 class1 = new Class1();
Thread thread = new Thread(new ThreadStart(class1.OpenSplash));
System.Threading.ThreadState ts = thread.ThreadState;
thread.Start();
//其他代码处理.........................................
//其他代码处理.........................................
flash.Close();
Application.Run(new PersonMain());
}
有的同事说线程Start后就随着结束了,根本来不及看到打开的窗口就给关闭了,如果这样,那我怎样不让线程马上结束呢?Top
5 楼Knight94(愚翁)回复于 2006-06-02 13:45:40 得分 0
参看
http://blog.csdn.net/knight94/archive/2006/05/27/757351.aspx
这篇文章中的窗体控制方法。Top




