C#模拟MSN窗体抖动

王朝c#·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

C#模拟MSN窗体抖动

窗体抖动是件很有意思的事情,就让我们看看一起来看看它的原理吧。

其实是生成随机数,然后改变Form的左上角的坐标。

我用的是循环来弄得,其实可以用timer来控制.

我把抖动分成了两种抖动:

1。 生成随机数,改变窗体左上角坐标,然后立即把窗体的坐上角坐标还原,继续循环。

2。 生成随机数,改变窗体左上角坐标,循环完毕之后,然后立即把窗体的坐上角坐标还原。

核心代码如下:

//第一种抖动

private void button1_Click(object sender, EventArgs e)

{

int recordx = this.Left; //保存原来窗体的左上角的x坐标

int recordy = this.Top; //保存原来窗体的左上角的y坐标

Random random = new Random();

for (int i = 0; i < 100; i++)

{

int x = random.Next(rand);

int y = 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坐标

}

}

//第二种抖动

private void button2_Click(object sender, EventArgs e)

{

int recordx = this.Left;

int recordy = this.Top;

Random random = new Random();

for (int i = 0; i < 50; i++)

{

int x = random.Next(rand);

int y = 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;

}

Demo下载http://www.cnblogs.com/Files/drizzlecrj/ShakingFrm.rar

http://www.cnblogs.com/drizzlecrj/archive/2006/12/20/598697.html

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航