none
如何即时刷新界面? RRS feed

  • 问题

  • 窗体中,设有一 StatusStrip,以便显示提示或错误信息,正常情况下没问题,但在执行查询等耗时较长的任务时,之前的语句会来不及刷新,从而导致提示失去了作用,请问在单线程条件下,如何解决?

    语句类似如下,用户看不到“正在查询......”,只能看到“查询结束!”

      Me.StatusStrip.ZtLabel.Text = "正在查询......"
      Me.TableAdapter.Fill(Me.DataSet.Table)
      Me.StatusStrip.ZtLabel.Text = "查询结束!"


    韩立学
    2011年7月28日 2:58

答案

全部回复

  • Me.StatusStrip.ZtLabel.Text = "正在查询......" Application.Doevents() Me.TableAdapter.Fill(Me.DataSet.Table) Me.StatusStrip.ZtLabel.Text = "查询结束!"
    http://feiyun0112.cnblogs.com/
    • 已标记为答案 大海怪 2011年7月28日 3:16
    2011年7月28日 3:09
    版主
  • 警告

    调用此方法将导致当前线程暂停,但处理所有等待窗口消息。 如果消息导致事件触发,则应用程序代码的其他区域可以执行。 这可能会导致您的应用程序展示难以调试的意外的行为。

    有无更为可靠、并且易于实现的方法?例如, Me.StatusStrip.ZtLabel.Text = "正在查询......" 之后插入一条等待100毫秒的语句,让其显示完成后,再继续执行?我不知道是否有等待语句。

    韩立学
    2011年11月4日 0:05