winform 如何显示正在加载

sola040515 2011-12-09 10:18:53
RT,如果碰到窗体加载慢的时候显示正在加载,加载完后显示窗体。如果窗体加载快就不显示,直接显示窗体,网上查找资料,似乎可以用多线程的方式,请指教,最好给个例子学习下,谢谢各位!(注:有没有可能实现类似reportview控件的那种加载的显示方式)
...全文
1174 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
sola040515 2011-12-12
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 ooo7880000 的回复:]
C# code

static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);


M……
[/Quote]谢谢,已实现
sola040515 2011-12-09
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 wushuai1346 的回复:]
想学习,为什么看不见代码?
[/Quote]还未有高手上传代码呀
wushuai1346 2011-12-09
  • 打赏
  • 举报
回复
想学习,为什么看不见代码?
sola040515 2011-12-09
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 hello_wys 的回复:]
???我的回复被删除了???
[/Quote]不清楚,在结贴中倒是可以看到内容
tiandi0074 2011-12-09
  • 打赏
  • 举报
回复
只能是多线程,不然如果数据加载比较慢,窗体会处于假死状态。
哥本哈根 2011-12-09
  • 打赏
  • 举报
回复
???我的回复被删除了???
sola040515 2011-12-09
  • 打赏
  • 举报
回复
谢谢LS,backgroundworker,我没用过,我试试去
哥本哈根 2011-12-09
  • 打赏
  • 举报
回复
这个只能根据测试来手动添加功能吧
可以使用backgroundworker控件来试试
sola040515 2011-12-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ttllxx 的回复:]
做个窗体,设置一个owner
[/Quote]
谢谢,请讲详细一点
nishuideyu09 2011-12-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ttllxx 的回复:]
做个窗体,设置一个owner
[/Quote]谢谢,能讲详细点吗
greyrainbow2010 2011-12-09
  • 打赏
  • 举报
回复
绑定了,我也想知道
ttllxx 2011-12-09
  • 打赏
  • 举报
回复
做个窗体,设置一个owner
wushuai1346 2011-12-09
  • 打赏
  • 举报
回复
再优雅一点就好了
ooo7880000 2011-12-09
  • 打赏
  • 举报
回复

static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);


Main.WaitForm sp = new Main.WaitForm(); //启动窗体---为等待窗口,显示正在加载窗体。、
context = new ApplicationContext();
context.Tag = sp;
Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
Application.Idle += new EventHandler(Application_Idle); //程序运行空闲去执行主程序窗体相应初始化代码
sp.Show(); //显示启动窗体
Application.Run(context);
}


private static void Application_Idle(object sender, EventArgs e)
{
Application.Idle -= new EventHandler(Application_Idle);
Start();
}

private static void Start()
{
if (context.MainForm == null)
{
//启动主程序窗体
Main.MainDesktop mw = Main.MainDesktop();
context.MainForm = mw;
mw.Initialization_All();
mw.Show();

//如果加载完毕,则关闭启动窗体
Main.WaitForm sp = context.Tag as Main.WaitForm;
if (sp != null)
{
sp.Close();
}
}
}

测试可用
sola040515 2011-12-09
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 taiyangzhiya 的回复:]
C# code
private void BackWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
PicBox.Visible = false;
tlp1.Visible = true;
}
……
[/Quote]谢谢,试试去
taiyangzhiya 2011-12-09
  • 打赏
  • 举报
回复
        private void BackWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
PicBox.Visible = false;
tlp1.Visible = true;
}

private void BackWorker_DoWork(object sender, DoWorkEventArgs e)
{
//要执行的动作
}
private void button1_Click(object sender,EventArgs e)
{
BackWorker.RunWorkerAsync();
}
taiyangzhiya 2011-12-09
  • 打赏
  • 举报
回复
可以使用backgroundworker,网上下载个正在加载的图片,把他放到panel上,让它在DOWORK上变换就好了

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧