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?
--------------------编程问答-------------------- 你没有让它停止啊!~
--------------------编程问答--------------------
是在WM程序中,.net cf中timer没有start方法,timer1.Enabled为true后,它会起来tick的。
timer1有设置interval的。 --------------------编程问答-------------------- 靠,小何你居然用我的帐号发贴!我研究了一下。
只有获得焦点的FORM才会执行执行timer的tick事件!
你点击按钮的同时,FormB已Focus了!
用线程去解决! --------------------编程问答-------------------- 这种效果需要用线程的方法去解决。
补充:.NET技术 , C#