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

Timer控件Tick事件失效的问题。

有两个Form窗体:登录界面窗体FormA和主界面窗体FormB。在FormA中用户通过点击登录按钮Button1进入FormB,由于需要鉴权,这个过程需要几秒钟,就想在FormA中添加了:一个Timer控件timer1和一个Label控件label1。Label的内容通过Timer动态设置改变,用于提示用户正在登录中。。
当用户点击登录按钮后:有使Timer的Enabled属性为true,Label的Visible为true。但在FormA转向FormB的这几秒钟,FormA中没有显示Label的内容。
FormA中代码如下:

//timer1.Enabled和label1.Visible默认都为false
private void Button1_Click(object sender, EventArgs e)
        {
            this.timer1.Enabled = true;
            this.label1.Visible = true;
            //若注释下面这行,则没有问题,可以在FormA中正常显示label1中的内容        
            new FormB("username", "password").Show();         
            //FormB打开需要几秒钟
        }

private void timer1_Tick(object sender, EventArgs e)
        {
            String tt = "登录中";
            //doLength为FormA的一个变量,默认值为1
            for (int i = 0; i < doLength; i++)
            {
                tt += ".";
            }
            this.label1.Text = tt;
            doLength = (doLength + 1) % 8 + 1;
        }

希望名位达人不吝赐教,谢谢先! --------------------编程问答-------------------- 帮顶一个 --------------------编程问答--------------------         调试跟踪、 --------------------编程问答-------------------- 这个一般需要用线程,因为你开formb时是主线程,它没有执行完事不会到timer里的,你调试的时候就会发现,不论你断点处停多久,它都不会到timer——tick事件里 --------------------编程问答-------------------- 调试跟踪过,正如楼上所说,不会到timer——tick事件中。 --------------------编程问答-------------------- 1、timer 有没有start方法?
2、timer有没有设interval?
--------------------编程问答-------------------- 你没有让它停止啊!~
--------------------编程问答--------------------
引用 5 楼 angel6709 的回复:
1、timer 有没有start方法?
2、timer有没有设interval?


是在WM程序中,.net cf中timer没有start方法,timer1.Enabled为true后,它会起来tick的。
timer1有设置interval的。 --------------------编程问答-------------------- 靠,小何你居然用我的帐号发贴!我研究了一下。
只有获得焦点的FORM才会执行执行timer的tick事件!
你点击按钮的同时,FormB已Focus了!
用线程去解决! --------------------编程问答-------------------- 这种效果需要用线程的方法去解决。
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,