如何在状态栏动态显示“正在加载数据......”?
要求是“正在加载数据”这几个字不动,而后面的点号在动,即一会儿三个点号,一会儿六个点号。

解决方案 »

  1.   

    基于事件的驱动每次状态改变的时候就改label.textlabel.text="正在加载数据."label.text="正在加载数据..."label.text="正在加载数据......"
      

  2.   

    用个timer或在加载数据过程中来设置吧;
    至于三个点和六个点的问题嘛,你可以这样:
    string str1="正在加载数据";
    string str2="...";
    string str3="... ...";int i=0;
    if(++i%2==0)
    {
     状态栏的.text=str1+str2;
     i=0;
    }else
    {
     状态栏的.text=str1+str3;
    }
    其实还有更简单的方法,自己想想吧;
      

  3.   

    各位高手:用timer怎么写啊?
    能给出具体一些的代码吗?
      

  4.   

    timer t=new timer()
    t.interval=1000;//假设把结果显示到label中,名字设为:label1;int i=0;
    t.tick+=delegate(sender,e){
    if(++i%2==0)
    {
     label1.text=str1+str2;
     i=0;
    }else
    {
     label1.text=str1+str3;
    }
    };t.Enabled=true;
      

  5.   

    to lianshaohua:
    这样会一直显示下去吧?加载完了还在显示?
      

  6.   

    这是timer和label都在同一UI线程中,否则还需要InvorkRequired的Invoke();
      

  7.   

    用 windows的timer,timer有三种,用这种。
    写好timer.tick事件就好了。
      

  8.   

    正解!
    后边的timer用法也是可以的
      

  9.   


    加载完了你就把Timer的实例t停掉呀,
    Timer t=new Timer();
    放到类中,不要写在方法中,这样就可以在类的其它方法中调用t了
      

  10.   

    在load里加this.Tag = 0;
    private void timer_Tick(object sender, EventArgs e)
    {
    this.Tag = (int)this.Tag + 1;
    if ((int)this.Tag > 6)
    {
    this.Tag = 0;
    }
    this.Text = "正在加载数据" + new string('.', (int)this.Tag);
    }
      

  11.   

    加载完毕后,设置timer.enable=false;
      

  12.   

    谢谢llsen 的热情相助,提出的方法也不错。
    LCL_data 的方法比较简单实用,但是这个this.Tag是没有必要的,我用了一个int变量来代替。
    hope250 提出的语句有个小错误,应为timer.Enabled=false;
      

  13.   

    label.text="正在加载数据." label.text="正在加载数据..." label.text="正在加载数据......"