问题描述
privatevoidpictureBox2_MouseClick(objectsender,MouseEventArgse){Graphicsg1;//g1=Graphics.FromHwnd(this.Handle);g1=Graphics.FromHwnd(pictureBox2.Handle);x=e.X;y=e.Y;Pointp1=newPoint(x+6,y+6);//获取位置Labellb=newLabel();//new一个Label控件lb.Width=90;//设置宽度lb.Height=12;//设置高度lb.Text=p1.ToString();lb.Top=x;lb.Left=y;//lb.Location=p1;//this.Controls.Add(lb);//将控件添加到当前窗体pictureBox2.Controls.Add(lb);g1.DrawEllipse(newPen(Color.Red,3),x,y,5,5);label1.Text="命中";System.Threading.Thread.Sleep(455);this.Close();Form1f=newForm1();f.Show();}
为什么我的lable不显示就直接跳转页面的?求解释。
解决方案
解决方案二:
把455改长一点
解决方案三:
引用1楼的回复:
把455改长一点
那个该2000了都没用
解决方案四:
调试下看看
解决方案五:
label1.Text="命中";System.Threading.Thread.Sleep(5000);label1.Text="命中2";//this.Close();//Form1f=newForm1();//f.Show();这样就知道到底是线程堵塞问题还是下面代码的问题。
解决方案六:
引用4楼的回复:
label1.Text="命中";System.Threading.Thread.Sleep(5000);label1.Text="命中2";//this.Close();//Form1f=newForm1();//f.Show();这样就知道到底是线程堵塞问题还是下面代码的问题。
这样的话,就没有命中出现,有命中2出现,这是什么的问题
解决方案七:
引用5楼的回复:
引用4楼的回复:label1.Text="命中";System.Threading.Thread.Sleep(5000);label1.Text="命中2";//this.Close();//Form1f=newForm1();//f.Show();这样就知道到底是线程堵塞问题还是下面代码的问题。这样的话,就没有命中出现,有命中2出现,……
System.Threading.Thread.Sleep(500);Application.DoEvents();//加一句this.Close();
解决方案八:
引用6楼的回复:
引用5楼的回复:引用4楼的回复:label1.Text="命中";System.Threading.Thread.Sleep(5000);label1.Text="命中2";//this.Close();//Form1f=newForm1();//f.Show();这样就知道到底是线程堵塞问题还是下面代码的问题。这样的话……
这样的话只能是在关闭窗体的瞬间才出现lable所显示的东西,现在我就是想点击先显示出来lable然后再过一定的时间跳转窗体
解决方案九:
Sleep(1000);Form1f=newForm1();f.Show();这个操作用异步的方式去执行。不然的话主线程一直被阻塞,你的label是出不来的。