private void button1_Click(object sender, EventArgs e)
        {
            pictruebox.Visible=true;
try()
{
}
catch()
{
}
         }
我想在点击button1以后先执行pictruebox的显示。再去运行别的内容。而不是等try{}catch{}完后才显示,比方说我点击button1后立马跳出一张图片,而不是等try{}catch{}执行完后才显示。。比方说进度条图片private void button1_Click(object sender, EventArgs e)
        {
            th = new Thread(new ThreadStart(showpic));
            th.Start();
         try()
              {
               }
         catch()
              { 
               }
         }void showpic()
{
pictruebox.visible=true;
}
用线程可以么??我运行的时候报错。而且我不怎么了解线程

解决方案 »

  1.   

    我本来想做progressBar,会影响速度。所以这个progressBar用一个动态GIF图像来代替。所以产生上述问题
      

  2.   

    private void button1_Click(object sender, EventArgs e)
    {
      pictruebox.Visible=true;  Application.DoEvent();        //<---  try()
      {
      }
      catch()
      {
      }
    }如果只是要界面更新显示图片,加Application.DoEvent()就可以了。
    它让Windows排队中的消息(其中有更新消息)得到执行,直到队列为空。
      

  3.   


    delegate void delegateVisible();
    private void picVisible()
    {
      if(this.InvokeRequired)
      {
        delegateVisible dv = new delegateVisible(picVisibleWork);
        this.Invoke(dv);
      }
      else
      {
        picVisible();
      }
    }
    private void picVisible()
    {
      pictruebox.visible=true;
    }
    private void button1_Click(object sender, EventArgs e)
            {
                th = new Thread(new ThreadStart(picVisible));
                th.Start();
             try
             {
               //....
             }
             catch()
             {
     
             }
             }
    回复内手写代码为测试,可能有错误
      

  4.   


    private void button1_Click(object sender, EventArgs e)
            {
                
             try
             {
               th = new Thread(new ThreadStart(picVisible));
                th.Start();         
             }
             catch()
             {
     
             }
    }
      

  5.   

    如果是gif,我说的方法首桢应该可以显示,但不见的会有动画(我没有试验过)。