问题描述
///<summary>///窗体加载///</summary>///<paramname="sender"></param>///<paramname="e"></param>privatevoidFrm主面_Load(objectsender,EventArgse){str="HelloWorld!";ThreadnonParameterThread=newThread(newThreadStart(Frm自消失提示框));nonParameterThread.Start();}privatevoidFrm自消失提示框(){Form1frmShowWarning=newForm1(str);//Form1为要弹出的窗体(提示框)Pointp=newPoint(Screen.PrimaryScreen.WorkingArea.Width-frmShowWarning.Width,Screen.PrimaryScreen.WorkingArea.Height);frmShowWarning.PointToScreen(p);frmShowWarning.Location=p;frmShowWarning.Show();for(inti=0;i<=frmShowWarning.Height;i++){frmShowWarning.Location=newPoint(p.X,p.Y-i);if(i<frmShowWarning.Height)Thread.Sleep(5);//将线程沉睡时间调的越小,窗口升起的越快elseThread.Sleep(5000);//将线程沉睡时间调的越大,窗口到顶停留时间越久}}
Form1中只有一个label,str给label.text赋值HelloWorld,结果窗口显示,也能正确关闭,但是label位置就是一个白条,包括设置的窗口样式,也没有
解决方案
解决方案二:
为什么不是用timer控件,设置定时时间,时间到了就弹出窗口;再开启另一个timer执行窗口的隐藏。
解决方案三:
你先不用穿值的方式,先直接给from1的label控件给定一个默认值,比如:123,然后在执行你的代码,看123能出来不,要是123能出来,那么就是你赋值没有成功的问题。然后你再跟踪代码,看什么情况。