C#打开窗体前如何显示加载1%到100%

来源:百度知道 编辑:UC知道 时间:2024/05/30 03:54:09
在一个有子窗体的程序里面,当打开一个子窗体时,有时快有时慢,怎么样可以当打开前要等待时,弹出一个窗口,然后显示
加载中
1%||||||||||||||||||||||
2%||||||||||||||||||||||
3%||||||||||||||||||||||
*%||||||||||||||||||||||
*%||||||||||||||||||||||
*%||||||||||||||||||||||
100%||||||||||||||||||||||
当然不是固定速度显示,在根据窗体打开前所剩时间。。。
哪个知道呀??
根据窗体打开前所剩时间。。。 来设定1%到100的时间呀?

你在子窗口里面 肯定有初始吧。
比如
你有4个初始操作
A
B
C
D
先设置个全局变量int over
四个部分,你在执行A后,over = 25
执行B over = 50
……
就这样做下。然后利用个线程来线程来控制主界面上面的进度条。或者用postmessage进行消息传递。

您好,

如果您在窗体加载的时候有多项工作可做,可以在这些工作中添加进度信息控制进度条,但如果您只是想单纯地显示窗体加载的进度,是不能实现的,WinForm加载时是不存在加载进度的,因此进度条只能显示窗体的工作完成情况,而不能显示窗体此刻加载到了多少,这个数值没法得到。

举个例子,就像楼上说的,如果有4个工作A B C D,然后每个任务完成后进度加25%,这样做没有任何问题,但如果A操作要占用70%的时间,在用户看来就是进度条到达25%的时候就不动了,然后一下涨到100%。

如果您真的需要一个进度条,您可以考虑计算窗体加载时算法的时间复杂度给它们分配进度值。

这要异步进程来实现吧。
MSDN里查一下有关Thread的资料吧,每当主程序执行了一定阶段,比如1%,就调用另一个进程,在新的窗口(或者模式对话框)中,控制进度条的长度

做个标记,这个问题很有意思!

用timer控件吧。。。。。。