请问这样的功能怎么实现?在form1中处理数据,ShowDialog()出来的form2中利用一个ProgressBar显示form1中的处理进度。

解决方案 »

  1.   

    使用公共类的话,form2只能使用show(),这时form1依然可以使用,我想在form2出来的时候有ShowDialog一样的效果
      

  2.   

    首先 ShowDialog() 会阻塞调用它的线程, 所以form2是不会有反应的。 应该使用 Show() 或者 新开线程处理数据至于显示后台进程的进度,可以用现成的组件 BackgroundWorker. 用 ReportProgress 方法报告进度, 响应OnProgressChanged 事件来显示进度 
      

  3.   

    那有没有什么简单办法让form2.show()出来后,form1变成不可编辑的状态的,或者在form2.ShowDialog()出来后能让form1线程继续下去的方法?
    3楼下面说的用组件 BackgroundWorker. 用 ReportProgress 方法报告进度, 响应OnProgressChanged 事件来显示进度不会用!