日期:2014-05-19  浏览次数:20837 次

求助:在我自已写的类中,如何使用主窗口中的状态栏里的进度条控件。多谢!
1.我在MainForm中用如下方法打开MDI窗口,并且我的MainFormr的statusStrip1中有一个toolStripProgressBar1
private   void   openToolStripMenuItem_Click(object   sender,   EventArgs   e)
{
    MdiForm   myMdiChild   =   new   MdiForm();
    MdiChild.Show();
}

2.在MdiForm中的Load中打开文件
private   void   Form2_Load(object   sender,   EventArgs   e)
{
    ReadF.RDfile( "c:\\text.dat ");
}


3.以下是读文件的类

namespace   myPRJ
{
        public   class   ReadF
        {
                public   static   RDfile(string   sFileName)
                {      
                        FileStream   fstream   =   new   FileStream(sFileName,   FileMode.Open,   FileAccess.Read,   FileShare.None);
                        byte[]   bBuffer   =   new   byte[5800];  
                        for(int   i=0;i <10000;i++)
                        {                      
                            fstream.Read(bBuffer,   0,   5800);
                            ....处理数据
                            》》》》》》》》我想在这个地方使用MainForm中的toolStripProgressBar1
                        }
                        fstream.Close();
                  }
          }
}




------解决方案--------------------
调用
ReadF.RDfile( "c:\\text.dat ",toolStripProgressBar1);
------解决方案--------------------
建议,使用委托,将进度条显示函数作为委托方法传入
------解决方案--------------------
传一个委托和传一个变量——在本事例中作用应该差别不大。

都只是改变进度条进度而已。
------解决方案--------------------
使用委托啊
------解决方案--------------------
toolStripProgressBar1是引用类型,代码上反而能明了不少,个人感觉比传递委托,回头再写一个函数体,里面只放上一个改变进度的代码,要好很多。
------解决方案--------------------
http://community.csdn.net/Expert/topic/5492/5492414.xml?temp=.2105219
------解决方案--------------------
public static RDfile(string sFileName,toolStripProgressBar MyToolbar)
....

ReadF.RDfile( "c:\\text.dat ",toolStripProgressBar1);

------解决方案--------------------
呵呵, 有位兄弟很认真的说
------解决方案--------------------
使用委托可以解决
------解决方案--------------------