C#模擬MSN窗體抖動的實現(xiàn)代碼
更新時間:2014年08月06日 10:12:59 投稿:shichen2014
這篇文章主要介紹了C#模擬MSN窗體抖動的實現(xiàn)代碼,非常實用的一個功能,需要的朋友可以參考下
基于C#實現(xiàn)窗體的抖動是件很有意思的事情,原理并不難,其實是生成隨機數(shù),然后改變Form的左上角的坐標即可。
這里用的是循環(huán)來實現(xiàn)的,其實還可以用timer來控制.
我把抖動分成了兩種抖動:
1.生成隨機數(shù),改變窗體左上角坐標,然后立即把窗體的坐上角坐標還原,繼續(xù)循環(huán)。
2.生成隨機數(shù),改變窗體左上角坐標,循環(huán)完畢之后,然后立即把窗體的坐上角坐標還原。
主要功能代碼如下:
//第一種抖動
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;
}
您可能感興趣的文章:
相關(guān)文章
Unity的IPreprocessBuildWithReport實用案例深入解析
這篇文章主要為大家介紹了Unity的IPreprocessBuildWithReport實用案例深入解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-05-05
C#中當(dāng)前時間轉(zhuǎn)為時間戳的3個方法
在計算機應(yīng)用世界里,無論是為了記錄事件的發(fā)生時間、保障數(shù)據(jù)一致性還是提升安全性,時間戳都是不可或缺的重要工具,下面我們就來看看C#中轉(zhuǎn)換當(dāng)前時間為時間戳有哪些方法吧2024-12-12
C#?EF?Core可視化工具的使用及EF?Core入門語句操作代碼
EF?Core?可用作對象關(guān)系映射程序?(O/RM),以便于?.NET?開發(fā)人員能夠使用?.NET?對象來處理數(shù)據(jù)庫,這樣就不必經(jīng)常編寫大部分數(shù)據(jù)訪問代碼了,接下來通過本文給大家介紹C#?EF?Core可視化工具的使用及EF?Core入門語句,感興趣的朋友一起看看吧2022-02-02

