场景:
在文件上传窗口中,如果上传几千个文件,需要很长时间。我在文件上传窗口中弹出了一个进度条的模态窗口。文件上传完成后,用户才可以有其他操作。问题:
由于长时间的上传文件,用户要求在传文件的时候可以有其他操作。由于其他操作,用户可能会关闭上传文件的窗口。请教方案:
在传文件的时候,用户可以有其他操作,但是如果文件没有上传完,用户不能关闭上传窗口或退出应用程序。请问各位怎么实现。有其他方案更好。 模态窗口可不可以只出现在上传文件的窗口中(只对上传文件窗口有模态效果),其他窗口可以继续使用。如果有,怎么实现?
在文件上传窗口中,如果上传几千个文件,需要很长时间。我在文件上传窗口中弹出了一个进度条的模态窗口。文件上传完成后,用户才可以有其他操作。问题:
由于长时间的上传文件,用户要求在传文件的时候可以有其他操作。由于其他操作,用户可能会关闭上传文件的窗口。请教方案:
在传文件的时候,用户可以有其他操作,但是如果文件没有上传完,用户不能关闭上传窗口或退出应用程序。请问各位怎么实现。有其他方案更好。 模态窗口可不可以只出现在上传文件的窗口中(只对上传文件窗口有模态效果),其他窗口可以继续使用。如果有,怎么实现?
解决方案 »
- |ZYCWPF| 如要在DataTrigger中去修改ViewModel的MyMessage属性 有示例代码 谢谢
- 按钮快捷键原理
- Visual Studio C#预处理命令不能补齐么?
- 这段代码为什么是这个结果?
- c#种如何启动本地或者局域网内部,别人的视频
- 自定义了一个panel模拟messagebox,弹出这个panel的时候,怎么才可以让其后的所有控件都不得获取焦点
- 帮帮忙,挺着急的
- 求大神请教接口怎么写,主管让我写个91开发者服务端接口,完全不懂什么意思以及怎么写啊?无从下手啊!!!
- 小问题在线等,如何声明一个可以跨文件使用(在同一个解决方案里)的全局变量?
- winfrom vlc 不是有效的 win32应用程序
- 多线程数据采:服务器提交协议冲突 Section=ResponseStatusLine
- update 错误
因此,不能够关闭上传窗口。
在上传窗口的Closing事件中提示用户,要用户确定是否真的要关闭。如果不是真要关闭,则e.Cancel = true。
用后台线程BackgroundWorker
private void timer1_Tick(object sender, EventArgs e)
{
if (progressBar1.Value >= 10)
{
timer1.Enabled = false;
this.Close();
}
else
{
progressBar1.Value += 1;
}
}
private void waiting_Load(object sender, EventArgs e)
{
progressBar1.Minimum = 0;
progressBar1.Maximum = 10;
progressBar1.Step = 1;
timer1.Enabled = true;
timer1.Interval = 500;
timer1.Tick += new EventHandler(this.timer1_Tick);
}
在一个FTP文件类中在操作所以FTP的文件管理。1楼的全局变量可以解决。但是显示文件进度的窗口呢?模态用户还是不能有其他操作啊。,
(1)用非模态窗体(this.ShowInTaskbar = true)设计上传监控界面,随时可以切换窗口。
(2)参考3楼代码,设计一个悬浮小窗体,显示上传进度
(3)设计托盘图标(加上菜单)
a.控制悬浮小窗体的显示与否
b.控制上传任务是否中止。
c.切换到工作界面。
(4)主界面用MDI窗体,交互执行其他窗体的任务。如果要求不高,用非模态窗体直接搞定也很好。
可以用BackgroundWorker(线程安全)
或者用Control.BeginInvoke(非线程安全)