C#模拟MSN窗体抖动的实现代码
基于C#实现窗体的抖动是件很有意思的事情,原理并不难,其实是生成随机数,然后改变Form的左上角的坐标即可。
这里用的是循环来实现的,其实还可以用timer来控制.
我把抖动分成了两种抖动:
1.生成随机数,改变窗体左上角坐标,然后立即把窗体的坐上角坐标还原,继续循环。
2.生成随机数,改变窗体左上角坐标,循环完毕之后,然后立即把窗体的坐上角坐标还原。
主要功能代码如下:
//第一种抖动 privatevoidbutton1_Click(objectsender,EventArgse) { intrecordx=this.Left;//保存原来窗体的左上角的x坐标 intrecordy=this.Top;//保存原来窗体的左上角的y坐标 Randomrandom=newRandom(); for(inti=0;i<100;i++) { intx=random.Next(rand); inty=random.Next(rand); if(x%2==0) { this.Left=this.Left+x; } else { this.Left=this.Left-x; } if(y%2==0) { this.Top=this.Top+y; } else { this.Top=this.Top-y; } this.Left=recordx;//还原原始窗体的左上角的x坐标 this.Top=recordy;//还原原始窗体的左上角的y坐标 } } //第二种抖动 privatevoidbutton2_Click(objectsender,EventArgse) { intrecordx=this.Left; intrecordy=this.Top; Randomrandom=newRandom(); for(inti=0;i<50;i++) { intx=random.Next(rand); inty=random.Next(rand); if(x%2==0) { this.Left=this.Left+x; } else { this.Left=this.Left-x; } if(y%2==0) { this.Top=this.Top+y; } else { this.Top=this.Top-y; } System.Threading.Thread.Sleep(1); } this.Left=recordx; this.Top=recordy; }