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

