visual studio 2005 C#做软件欢迎窗体遇到label控件无法显示,请高手来帮忙看看
我准备用C#实现一个软件欢迎窗体,就是当启动软件后,先显示一个欢迎的窗体告诉用户,程序正在加载中,然后关闭欢迎窗体,显示程序主窗体。我是这样实现的:首先新建一个windo...
我准备用C#实现一个软件欢迎窗体,就是当启动软件后,先显示一个欢迎的窗体告诉用户,程序正在加载中,然后关闭欢迎窗体,显示程序主窗体。
我是这样实现的:首先新建一个windows应用程序项目,form1窗体(即用来做程序主窗体)
from1.cs中代码如下:
namespace test
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
Form2 fw = new Form2();
fw.Show();
System.Threading.Thread.Sleep(3000);
fw.Close();
}
}
}
然后在此项目中添加一个windows窗体——form2(即用来做欢迎窗体,form2.cs中代码没添加任何代码),该窗体中有一个label控件,用来显示“程序加载中,请稍等...”信息。
但当调试时,我发现当from1(即主窗体)调用显示form2(即欢迎窗体),from2窗体中的label控件无法显示(由于form2窗体就一个label控件,所以不存在排放位置“置顶层”的问题)该控件显示为一个白色的区域,如图:
请问这是咋回事?为什么label控件无法显示出来?我很肯定label控件的visible属性为true,所以请大家帮我看下到底怎么回事? 展开
我是这样实现的:首先新建一个windows应用程序项目,form1窗体(即用来做程序主窗体)
from1.cs中代码如下:
namespace test
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
Form2 fw = new Form2();
fw.Show();
System.Threading.Thread.Sleep(3000);
fw.Close();
}
}
}
然后在此项目中添加一个windows窗体——form2(即用来做欢迎窗体,form2.cs中代码没添加任何代码),该窗体中有一个label控件,用来显示“程序加载中,请稍等...”信息。
但当调试时,我发现当from1(即主窗体)调用显示form2(即欢迎窗体),from2窗体中的label控件无法显示(由于form2窗体就一个label控件,所以不存在排放位置“置顶层”的问题)该控件显示为一个白色的区域,如图:
请问这是咋回事?为什么label控件无法显示出来?我很肯定label控件的visible属性为true,所以请大家帮我看下到底怎么回事? 展开
3个回答
展开全部
namespace test
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
Form2 fw = new Form2();
fw.Show();
Application.DoEvent();
System.Threading.Thread.Sleep(3000);
fw.Close();
}
}
}
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
Form2 fw = new Form2();
fw.Show();
Application.DoEvent();
System.Threading.Thread.Sleep(3000);
fw.Close();
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为System.Threading.Thread.Sleep(3000);这句阻塞了主线程,没有“人”负责绘制主窗体,所以窗体便卡在那里,在Form2里加一个Timer控件就行了,代码如下
Form1
public Form1()
{
InitializeComponent();
Form2 fw = new Form2();
fw.ShowDialog();
}
Form2:先设置好timer1的Interval=1000,Enabled =true
int times = 0;
private void timer1_Tick(object sender, EventArgs e)
{
times++;
if (times == 3)
{
this.Close();
}
}
Form1
public Form1()
{
InitializeComponent();
Form2 fw = new Form2();
fw.ShowDialog();
}
Form2:先设置好timer1的Interval=1000,Enabled =true
int times = 0;
private void timer1_Tick(object sender, EventArgs e)
{
times++;
if (times == 3)
{
this.Close();
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2009-07-01
展开全部
fw.refresh();
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询