当前位置:编程学习 > C#/ASP.NET >>

C#中让窗体的LOAD中的代码执行完了,再显示整个窗体..

我有一个窗体,其中在LOAD 中有加载数据,有时候会有点慢,为了不让用户看到慢.
是不是可以让用户先看到一个等待窗体A,让别一个窗体同时显示B, 等B完全显示好了,再把A.关了,显示B呢? --------------------编程问答--------------------
        private void Form2_Load(object sender, EventArgs e)
        {         

            Thread _Thread = new Thread(new ThreadStart(ShowLoginingForm));
            _Thread.SetApartmentState(ApartmentState.STA);
         
            _Thread.Start();

            for (int i = 0; i != 1000000; i++)
            {
                for (int z = 0; z != 1000; z++)
                {
                   
                }
            }
            _Thread.Abort();
           

        }

        public void ShowLoginingForm()
        {
            
            Form1 _Form = new Form1();
            _Form.TopMost = true;
            _Form.Show();
            while (true)
            {
                Application.DoEvents();
            }            
        } --------------------编程问答-------------------- 遇到这种比较耗时的操作,可以考虑使用异步操作。

首先,让等待画面A显示出来,并在后台实施数据加载动作;一般而言,还可以让数据加载的进度显示在等待画面上。
其次,当数据加载结束了,再启动画面B把数据显示上去。

又或者:
首先,让画面B直接显示出来。但因为数据尚未加载,所以暂时禁用整个画面。
其次,运行后台线程执行数据加载。

关于.NET异步操作,网上又好多文章,不妨搜一下 --------------------编程问答-------------------- 能不能,给介绍一下,或者示例一下 --------------------编程问答-------------------- 你原来的思路就是对的,首先把A窗口隐藏,然后开一个新线程调用B窗口,在A窗口Load函数执行完毕时,用通知B窗口关闭,并显示A窗口

下面是我一个程序的欢迎窗口大概代码   你可以参考一下

 this.Hide();
            //调出欢迎窗口
            FontWelecome fW = new FontWelecome();
            fW.ShowMainFormEvent += new UserEvents.ShowMainFormEventHandler(ShowMainFormEvent);
            //调出字幕窗体,并且特效消失
            Thread welcomeDlgThread = new Thread(new ThreadStart(fW.ShowWelcomeDlg));
            welcomeDlgThread.Start();


然后在Load函数的最后
//通知欢迎窗体,已经加载完毕,可以关闭显示主窗体
fW.AllowFontWelComeDlgClosed(); --------------------编程问答-------------------- 两个办法:
第一,做成MDi的flash窗体,就跟PS一样,刚开始有一个窗体显示...
第二,在你的Form下都有一个InitializeComponent();方法,这个是用来初始化窗体的,你放到它之前执行就行了,C#是自上而下的设计模式.
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,