小弟现在要做一个windows程序,窗体上就放一个button和一个label,点击button后处理后台数据,然后在label上显示“loading...”,数据处理完毕之后label显示“完成”。
哪位大侠或者高手帮小弟一把,谢谢~~~~~~~

解决方案 »

  1.   

    label。text = “LOading”;
      

  2.   

    label.TEXT = loading..;
    在你处理数据的方法或事件下
      label.TEXT = “完成”;
      

  3.   

    你还可以用一个控件。。UpdateProgress吧!貌似是这样的。。嘿嘿!
      

  4.   

    UpdateProgress是asp.net中的ajax用到的控件,我现在要做的是windows窗体,不是asp.net,大家别搞错了!!!
      

  5.   

    用线程,            mythread = new Thread(new ThreadStart(ThreadWork));
                mythread.Start();
      

  6.   

    mythread = new Thread(new ThreadStart(yourwork));
      mythread.Start();public void yourwork()
    {
    lable。txt="完成"
    }
    详细8楼的
      

  7.   

    刚学编程吧,这个事是要思想的!Loding...
      

  8.   

    http://www.codeproject.com/KB/progress/waitwindow.aspx
      

  9.   

    Loading...要是长时间看不到跳转,请尝试刷新网页- -!
      

  10.   


                Label1.Text = "loading...";
                System.Windows.Forms.Application.DoEvents(); //重点
                GO(); //这个函数是处理数据的函数
                Label1.Text = "完成";
      

  11.   

     
    ThreadStart ts=new ThreadStart(ShowProcess);
    Thread trd=new Thread(ts);
    ts.Start();
    /*数据处理代码*/
    ts.Abort();
    private void ShowProcess()
    {
    //显示loading窗体
    }
      

  12.   

    新建一个winform程序,拖一个lable和button到默认窗体.复制以下代码到后台,注意修改命名空间为你程序的默认命名空间using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Threading;//修改为你程序的默认命名空间
    namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();            this.Load += new EventHandler(Form1_Load);            button1.Click += new EventHandler(button1_Click);
            }        private void Form1_Load(object sender, EventArgs e)
            {
                label1.Text = "ok!";
            }        private delegate bool ExecuteHandler();         private void button1_Click(object sender, EventArgs e)
            {
                label1.Text = "loading...";
                button1.Enabled = false;            ExecuteHandler eh = new ExecuteHandler(Execute);            IAsyncResult iaResult = eh.BeginInvoke(null, null);            Application.DoEvents();            while (!iaResult.IsCompleted)
                {
                    Application.DoEvents();
                }            button1.Enabled = eh.EndInvoke(iaResult);
                label1.Text = "完成";
            }        //模拟业务实现
            private bool Execute()
            {
                //模拟业务代码块
                Thread.Sleep(3000);
                return true;
            }
        }
    }
      

  13.   


    //窗体里面加一个button和一个label控件,把这个代码拿进去试试
    private void button1_Click(object sender, EventArgs e)  //按钮点击
    {
        label1.Text = "Loading...";
        Thread thd = new Thread(st);   //st是线线程调用的方法,也就是你处理数据的方法
        thd.Start();
    }private void st()
    {
        Thread.Sleep(2000); //为了测试,线程停2秒,当然可以在这之前写你处理数据的代码     //因为线程里面不能访问控件,所以用Invoke调用ThreadEndCallback方法
        this.Invoke(new Action<string>(this.ThreadEndCallback), "Loading完毕!");
    }private void ThreadEndCallback(string str) //线程回调方法
    {
        label1.Text = str;
    }
      

  14.   

    label可见,把LABEL放到Z轴最前方
      

  15.   

    invke 加委托 实现 线程
      

  16.   

    在你的后台中可能分几个事务
    那你第一个事务开始时
    控制前台label1让其显示Loading 1/N
    第二个事务开始时
    控制前台label1让其显示Loading 2/N
    最后全部处理完成,控制前台label1让其显示 completed