如何让一个弹出窗口消失

JamOfCode 2010-03-26 10:24:49
进行一个运算,希望在运算前弹出一个窗口提示正在运算,然后算完了,这个弹窗消失掉


//主窗口类
SolutionRobot MyRobot = new SolutionRobot(textBoxOfInputPath.Text, textBoxOfOutputPath.Text,day);
WatingForm wait = new WatingForm();
MyRobot.Run();
wait.CloseDialog();


...
//弹出窗口类
partial class WatingForm : Form
{
public WatingForm()
{
InitializeComponent();
this.ShowDialog();
//OperateProgressBar();
}
public void CloseDialog()
{
this.Close();
}


这样写为什么不行??
...全文
204 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
JOCLI 2010-03-26
  • 打赏
  • 举报
回复
纠正下:
aForm.Show();改为
prgForm.Show();
JOCLI 2010-03-26
  • 打赏
  • 举报
回复

using System.Threading;
Thread t = new Thread(new ThreadStart(ShowProgressBar));
t.Start();
try
{
//这里是你的计算过程
}
finally
{
bAbort = true;
t.Join();
}
static bool bAbort = false;
private static void ShowProgressBar()
{
ProgressForm prgForm = new ProgressForm();
aForm.Show();
while (!bAbort || prgForm .progressBar1.Value < 99)
{
if (prgForm .progressBar1.Value + 3 > 100)
{
prgForm .progressBar1.Value = 1;
}
else
{
prgForm .progressBar1.Value += 3;
}
Thread.Sleep(5);
}
}
JamOfCode 2010-03-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 jocli 的回复:]
单独列一个线程来运行 progressbar
计算完成后终止线程即可
[/Quote]


这个怎么写啊,给点代码行么?
andyleec 2010-03-26
  • 打赏
  • 举报
回复
把wait.CloseDialog();写到run()方法里,哈哈

按你这种情况,应该是run()方法里执行了异步操作
kinglshadow 2010-03-26
  • 打赏
  • 举报
回复
Flower_GF 2010-03-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 jocli 的回复:]

单独列一个线程来运行 progressbar
计算完成后终止线程即可
[/Quote]

up
JOCLI 2010-03-26
  • 打赏
  • 举报
回复
单独列一个线程来运行 progressbar
计算完成后终止线程即可

110,578

社区成员

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

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

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