winform读取数据库内容,在读取过程中,在winform上有一个提示"正在读取中.."这个改怎么做呢?

解决方案 »

  1.   

    在读取开始的时候写上
    label.Text="正在读取中.."
    读取数据库代码...
    label.Text="读取完毕"
      

  2.   

    Firestone2003(笨笨小猪):
         按你这样,label.Text="正在读取中.."是显不出来的,会一直黑在那里,直到查完了显示label.Text="读取完毕".
      

  3.   

    label.Text="正在读取中..";
    Application.DoEvents;
    读取数据库代码...
    label.Text="读取完毕";
      

  4.   

    读取数据库应该使用另外一个线成 这样窗体就不会出现假死状态。开启线程前label.Text="正在读取中..";线程完成后label.Text="读取完毕";
      

  5.   

    去看一下 backgrounworker 的用法,会对你很有帮助。 不但可以显示正在读取,还可以显示读取的进度.
      

  6.   

    我看用AJAX最好,即不需要刷新界面,又可显示动态的进度条
      

  7.   

    System.Windows.Forms.Application.DoEvents();
      

  8.   

    单独做一个等待对话框,在等待框中放一个label,上面写“正在处理,请等待”。编译成dll,然后在你那里面调用,对于显示出来是看不清字,你可以在Activited事件里加入,
    this.Update();  
    this.Validate();
    不断地刷新文字。
      

  9.   

    buyaowen(外包需要掌握三点) 
    kkk_visual(善恶边缘):
                       能具体点吗?2位!!
      

  10.   

    读取数据库应该使用另外一个线成 这样窗体就不会出现假死状态。开启线程前label.Text="正在读取中..";线程完成后label.Text="读取完毕";
      

  11.   

    Yellow198267(回答完毕,谢谢。请给分!):
                   线程的返回值是?
      

  12.   

    呵呵, 开多线程应该可以解决假死的问题, 这里提供土办法一个, 仅供参考:用一个panel控件, 其背景图片设置为一个gif动画或静态的写着"正在读取"的图片(你可用附件里的绘图板做)代码甚简单:Panel1.Show();
    //读取数据的代码;
    Panel1.Hide();
      

  13.   

    通常我是这样写:
    例如
    private void Butto1_Click(......)
    {
    Thread t=new Thread(new ThreadStart(ThreadRun));
    t.start();
    }private void ThreadRun()
    {
    this.label1.Invoke((MethodInvoker)new delegate{this.label1.text="开始...";});......//数据库操作this.label1.Invoke((MethodInvoker)new delegate{this.label1.text="结束";});
    }
      

  14.   

    kissknife(侧身向南边):
            如果ThreadRun函数有返回值好像就不能这么用了?
      

  15.   

    ThreadStart代理是定义成无返回的,线程方法通常是没有返回值的我不知道你为什么需要让ThreadRun函数有返回值.
      

  16.   

    看了这么多方法..Mark2Win(马客)的最适合我目前情况....这里感谢大家不厌其烦,虽然分少,但是还在尽量的帮我,谢谢大家了...