窗体加载启动速度问题? 主函数中 :Application.Run(new Form1());我在Form1_Load()函数里有大量的计算数据,用了很长时间。运行程序后窗体很久不出现,直到Form1_Load()里的计算完成后才出现。我想让程序一运行就出现窗体,然后用一个label显示"正在计算,请等待",等计算完成后,此Label消失,该怎么办?帮忙。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 把加载数据不要放在LOAD事件里,在Form1_Resize....事件里写,试试! 做一个now loading 的效果================12345,上山打老虎 “加载数据不要放在LOAD事件里,在Form1_Resize....事件里写"不成功啊,Form不改变大小的话是一直显示“正在计算,请等待..。”的,只有响应窗体大小改变时间才开始计算阿。楼上的 now loading效果能不能详细说明一下,谢谢阿。 楼上的 now loading效果能不能详细说明一下,谢谢阿。================我也在找啊。...这样可以让用户感觉上好一点================12345,上山打老虎 Form1_Load()函数中{ Thread thread=new Thread(new ThreadStart(Calc)); thread.Start(); .....}private void Calc(){ 你的计算代码} 用BackGroundWorkerhttp://www.idesign.net/idesign/DesktopDefault.aspx?tabindex=5&tabid=11http://www.google.com/search?hl=zh-CN&newwindow=1&q=BackGroundWorker&lr= 你可以做一个闪屏窗口 像 Microsoft Visual Studio .NET 2003具体代码片断[STAThread]public static void Main() { _MainForm= new MainForm(); //主窗口传递给闪屏 窗口 FlashScreenFrm fs = new FlashScreenFrm(_MainForm); //闪屏模式显示 if (fs.ShowDialog()==DialogResult.Cancel) { System.Environment.Exit(1); } //完成后销毁 fs.Dispose(); try { //启动主窗口 Application.Run(_MainForm); } catch(Exception ex) { MessageBox.Show(ex.ToString()); System.Environment.Exit(1); } finally { }}//闪屏窗口///窗口为平板样式public class FlashScreenFrm : System.Windows.Forms.Form{ //显示消息 private System.Windows.Forms.Label label1; private System.ComponentModel.IContainer components=null; //时间控件 private System.Windows.Forms.Timer timer1; //放置图形 private System.Windows.Forms.PictureBox pictureBox1; MainForm _mForm; //构造1 public FlashScreenFrm() { InitializeComponent(); } //构造2 public FlashScreenFrm(MainForm mForm):this() { //有用 this.Tag=0; //保留变量 _mForm = mForm; //设置消息 label1.Text= "程序初始化"; //启动 timer1 如果在这里写处理什么也看不到 timer1.Enabled=true; } //省略部分。 private void FlashScreenFrm_Closing(object sender , System.ComponentModel.CancelEventArgs e) { //防止 alt+F4 if ((int)this.Tag==0) e.Cancel=true; } private void timer1_Tick(object sender, System.EventArgs e) { DialogResult rVar =DialogResult.Cancel; //就运行一次 timer1.Enabled=false; this.label1.Text="程序正在加载请稍后"; //不加这个就看不到效果 Application.DoEvents(); try { //调用主窗口的计算函数 _mForm.LoadIClients(); this.label1.Text="程序加载完成...."; Application.DoEvents(); //不加这个最后的消息看不见 System.Threading.Thread.Sleep(100); rVar =DialogResult.OK; } catch(Exception ex) { MessageBox.Show(ex.ToString()); } finally { this.Tag = 1; this.DialogResult = rVar; } }} 如何一次添加多个附件? splitcontainer Panel2 问题 怎么样才能.exe文件包容.exe 求详解!!!!!! 异步上传的关闭流操作疑问(很难) 数据类型转化,急!!!! 【求助】用HttpWebRequest通过代理,访问https时出错?? c#程序员薪水大揭秘!!!!!!!!! 安装制作 .NET Server (Win Server 2003)的稳定性怎么样啊? 主从表多表更新时如何控制事物?高手帮忙 datagrid中加入checkbox取得checkbox的值 屏蔽一些列 关于动态调用Web Service的办法,高手快来帮忙100分
做一个now loading 的效果================12345,上山打老虎
================
我也在找啊。...这样可以让用户感觉上好一点================12345,上山打老虎
{
Thread thread=new Thread(new ThreadStart(Calc));
thread.Start();
.....
}private void Calc()
{
你的计算代码
}
http://www.idesign.net/idesign/DesktopDefault.aspx?tabindex=5&tabid=11http://www.google.com/search?hl=zh-CN&newwindow=1&q=BackGroundWorker&lr=
闪屏窗口
像 Microsoft Visual Studio .NET 2003
具体代码片断
[STAThread]
public static void Main()
{
_MainForm= new MainForm();
//主窗口传递给闪屏 窗口
FlashScreenFrm fs = new FlashScreenFrm(_MainForm);
//闪屏模式显示
if (fs.ShowDialog()==DialogResult.Cancel)
{
System.Environment.Exit(1);
}
//完成后销毁
fs.Dispose(); try
{
//启动主窗口
Application.Run(_MainForm);
}
catch(Exception ex)
{
MessageBox.Show(ex.ToString());
System.Environment.Exit(1);
}
finally
{
}
}//闪屏窗口
///窗口为平板样式
public class FlashScreenFrm : System.Windows.Forms.Form
{
//显示消息
private System.Windows.Forms.Label label1;
private System.ComponentModel.IContainer components=null;
//时间控件
private System.Windows.Forms.Timer timer1;
//放置图形
private System.Windows.Forms.PictureBox pictureBox1;
MainForm _mForm;
//构造1
public FlashScreenFrm()
{
InitializeComponent();
}
//构造2
public FlashScreenFrm(MainForm mForm):this()
{
//有用
this.Tag=0;
//保留变量
_mForm = mForm;
//设置消息
label1.Text= "程序初始化";
//启动 timer1 如果在这里写处理什么也看不到
timer1.Enabled=true; }
//省略部分。
private void FlashScreenFrm_Closing(object sender
, System.ComponentModel.CancelEventArgs e)
{
//防止 alt+F4
if ((int)this.Tag==0)
e.Cancel=true;
} private void timer1_Tick(object sender, System.EventArgs e)
{
DialogResult rVar =DialogResult.Cancel; //就运行一次
timer1.Enabled=false; this.label1.Text="程序正在加载请稍后";
//不加这个就看不到效果
Application.DoEvents();
try
{
//调用主窗口的计算函数
_mForm.LoadIClients();
this.label1.Text="程序加载完成...."; Application.DoEvents();
//不加这个最后的消息看不见
System.Threading.Thread.Sleep(100);
rVar =DialogResult.OK;
}
catch(Exception ex)
{
MessageBox.Show(ex.ToString());
}
finally
{
this.Tag = 1;
this.DialogResult = rVar;
}
}
}