从access数据库oledb字段读出jpg文件,共90行,即90个jpg文件。
希望 放pictureBox1中,隔1秒依次显示这些图片。
结果:程序界面pictureBox1中一直无显示,然后只显示最后1个图片。
log文件却显示每个图片都显示了。
请问是怎么回事?private void button1_Click(object sender, EventArgs e)
        {
            myDBpath = str_MainDir+ @"savePIC.mdb";
            str_SQL = @"SELECT myJpg FROM PIC ";
            str_DBtable = @"PIC";
            System.Data.DataTable mydbtable = readDB2DataTable(myDBpath, str_SQL, str_DBtable);            int DB_num = mydbtable.Rows.Count;//
            if (DB_num > 0)
            {
                for (int m = 0; m < DB_num; m++)
                {
                    Byte[] byteBLOBData = new Byte[0];
                    byteBLOBData = (Byte[])(mydbtable.Rows[m][0]);
                    MemoryStream stmBLOBData = new MemoryStream(byteBLOBData);
                    pictureBox1.Image = Image.FromStream(stmBLOBData);
                    stmBLOBData.Close();                    Thread.Sleep(1000);
                    log( "已显示完第" + m.ToString() + "个图片");//记录日志
                }
            }
            mydbtable.Clear();
          
        }

解决方案 »

  1.   

    Application.DoEvent();
    Thread.Sleep(1000);更好的做法是把整个for循环的代码放到线程里
      

  2.   

    Application.DoEvent();
    Thread.Sleep(1000);提示:参数无效。?
      

  3.   

    就加一行代码:Application.DoEvent();哪来的参数?别的代码出错了吧?
      

  4.   

    Application.DoEvent();
    加在
    Thread.Sleep(1000);
    前面
      

  5.   

    sorry!! Application.DoEvent() 少写个 "s"、手打的Application.DoEvents()
      

  6.   

    我是把Application.DoEvents()
    加在
    Thread.Sleep(1000);
    前面Application.DoEvents()这里提示:参数无效。?
      

  7.   

    Oh,my lady GaGa.
    Application.DoEvents()
    也要参数了?
      

  8.   

    关键是我的code问题在哪?为什么不能连续在pictureBox1中显示从access中读出的图片?