进入Eclipse时有个进度条和图片,进度条一直在动,结束后进去主界面,那个用C#可以实现吗?我是新手,请给点思路,多谢了。

解决方案 »

  1.   

    用vs的进度条或者第三方进度条控件,然后用多线程控制程序反馈回来的信息,异步更新UI。
      

  2.   

    我用线程做的进度条,主页面加载在Load事件中,可能是因为主页面也用到了线程,所以页面关闭后主页面不显示,并且报错,InvalidOperationException
      

  3.   

    Winform实现进度条的启动界面
    http://www.cpbcw.com/code/1598.html
      

  4.   

    我的主页面构造方法和LOAD事件都有很多代码需要执行的,并且LOAD事件里还用委托调了一个线程来初始化我一个很大的控件,所以5楼的那个程序行不通啊,朋友能说说异步更新UI什么意思吗?
      

  5.   

    //进度条界面
        public partial class LoginLoading : Form
        {
            private Thread progressBarThread;        private ThreadStart mainFormThreadStart;        private Thread mainFormThread;        public MainForm mainForm;        private bool flag;        private int progressBarValue = 1;        public LoginLoading()
            {
                InitializeComponent();
            }        private void initProgressBar()
            {
                flag = true;            while (flag)
                {
                    Thread.Sleep(100);
                    this.progressBar.Value = progressBarValue;
                    progressBarValue++;
                }
            }        private void LoginLoading_Load(object sender, EventArgs e)
            {
                mainFormThreadStart = delegate { initMainForm(sender, e); };
                mainFormThread= new Thread(mainFormThreadStart);
                mainFormThread.Start();
                progressBarThread = new Thread(initProgressBar);
                progressBarThread.Start();
            }        private void initMainForm(object sender, EventArgs e)
            {
                CheckForIllegalCrossThreadCalls = false;
                if (mainForm != null)
                {
                    mainForm.MainForm_Load(sender, e);
                }
                else
                {
                    mainForm = new MainForm();
                }
                flag = false;
                this.progressBar.Value = 100;
                this.Close();
                mainForm.Show();
            }
        }    //主页面,pnlMain是一个PANEL
        public partial class MainForm : Form
        {
    public void MainForm_Load(object sender, EventArgs e)
            {
                Thread thread = new Thread(new ThreadStart(initControl));
                thread.IsBackground = true;
                thread.Start();
            }
      public void initControl()
            {
                if (control == null)
                {
                    pnlMain.Invoke((EventHandler)(delegate
                    {
                        control = new Control();
                    }));
                }
            }
         }
    我自己写了一个程序,但是不是很管用,进度条走完了(已经到了100%)开始显示主页面,但是主页面依然在加载,即使我让他每次睡10秒,并且会在主页面的INITCONTROL方法里报错,谁能帮我看看。