c#实现窗口抖动
窗体抖动是件很有意思的事情,就让我们看看一起来看看它的原理吧。
其实是生成随机数,然后改变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;
}
作者: Crylan 发布时间: 2010-04-15
作者: porschev 发布时间: 2010-04-15
作者: chenqingwei 发布时间: 2010-04-15
作者: hugang001 发布时间: 2010-04-15
作者: computerfox 发布时间: 2010-04-15
作者: sciolist 发布时间: 2010-04-15
作者: zhlu880516 发布时间: 2010-04-15
作者: zsuswy 发布时间: 2010-04-15
作者: hepeng154833488 发布时间: 2010-04-15
作者: siegebaoniu 发布时间: 2010-04-16
作者: imissyouyw 发布时间: 2010-04-16
作者: swalp 发布时间: 2010-04-16
作者: lyvscf 发布时间: 2010-04-16
该回复于2010-04-16 11:42:34被管理员删除
- 对我有用[0]
- 丢个板砖[0]
- 引用
- 举报
- 管理
- TOP
|
#14楼 得分:0回复于:2010-04-16 10:48:19
|
作者: isslkefks5 发布时间: 2010-04-16
作者: isslkefks6 发布时间: 2010-04-16
作者: vpoint2009 发布时间: 2010-04-16
作者: zxzkb 发布时间: 2010-04-16
作者: wo65432519 发布时间: 2010-04-16
作者: jjcl521 发布时间: 2010-04-17
不过第二种方法我没有用过,拿去看了
作者: libinlink 发布时间: 2010-04-17
这个rand是哪里来的啊?
从石缝里蹦出来的!!!
哈哈哈……
作者: Maryneet 发布时间: 2010-04-17
作者: wode123ppt 发布时间: 2010-04-17
引用 16 楼 zxzkb 的回复:
这个rand是哪里来的啊?
从石缝里蹦出来的!!!
哈哈哈……
到底哪来的rand
作者: w382120035 发布时间: 2010-04-17
作者: eldxin7 发布时间: 2010-04-22
作者: JustDoIt_NotLast 发布时间: 2010-04-22
作者: fina1982 发布时间: 2010-04-22
作者: s364021318 发布时间: 2010-04-23
作者: lixiaolian7 发布时间: 2010-04-23
作者: Shirely_Jiao 发布时间: 2010-04-23
学习……
作者: scdn8311 发布时间: 2010-04-27
作者: hua_nan_she 发布时间: 2010-04-27
作者: pigHead_chen 发布时间: 2010-04-29
作者: HHQSY 发布时间: 2010-04-29
C# code
int i,j,k; //定义三个变量 for(i=1;i<=3;i++) //循环次数 { for(j=1;j<=10;j++) { this.top+=5; this.left+=5; System.Threading.Thread.Sleep(5); //当前线程指定挂起的时间 } for(k=1;k<=10;k++) { this.top-=5; this.left-=5; System.Threading.Thread.Sleep(5); } }
自觉结贴好习惯!
作者: lc_stone 发布时间: 2010-04-29
作者: yarkingJ 发布时间: 2010-05-01
作者: LJ_welcome 发布时间: 2010-05-08
作者: LJ_welcome 发布时间: 2010-05-08
作者: LJ_welcome 发布时间: 2010-05-08
{
var currPos = this.Location;
int i = 0;
Timer timer = new Timer();
timer.Interval = 25;
timer.Tick += (sender, e) =>
{
if (i % 2 == 0)
{
this.Left += 10;
this.Top += 10;
}
else
{
this.Left -= 10;
this.Top -= 10;
}
if (i++ >= 8) //抖动次数
{
this.Location = currPos;//重设窗体初始
timer.Enabled = false;
timer.Dispose();
}
};
timer.Enabled = true;
}
作者: changjin642 发布时间: 2010-05-09
作者: omiao 发布时间: 2010-05-26
我看了很多这种抖动代码,我这里还有一种抖动方法,它摒弃了你用随机数产生的抖动不好看的弊端,可以让窗体抖动得很自然!具体代码如下:
C# code
int i,j,k; //定义三个变量
for(i=1;i<=3;i++) //循环次数
{
for(j=1;j<=10;j++)
{
this.top+=5;
this.left+=……
这个不错~
作者: lishanquan 发布时间: 2010-05-27
作者: Joney_y 发布时间: 2010-05-27
好玩,有波浪式的抖动么
自己去写坐标啊
作者: caoqinghua 发布时间: 2010-05-28
作者: wode123ppt 发布时间: 2010-05-28
作者: wwwtre 发布时间: 2010-05-29
作者: snowkingdom 发布时间: 2010-05-29
作者: ykaihome 发布时间: 2010-05-29
作者: first_wang2000 发布时间: 2010-05-30
作者: chas824045706 发布时间: 2010-05-30
我看了很多这种抖动代码,我这里还有一种抖动方法,它摒弃了你用随机数产生的抖动不好看的弊端,可以让窗体抖动得很自然!具体代码如下:
C# code
int i,j,k; //定义三个变量
for(i=1;i<=3;i++) //循环次数
{
for(j=1;j<=10;j++)
{
this.top+=5;
thi……
top-->>Top,lef-->>Left 就OK了
作者: shou55 发布时间: 2010-05-30
作者: hummer94555555 发布时间: 2010-05-30
作者: fulminati 发布时间: 2010-05-30
作者: unbaba 发布时间: 2010-05-31
作者: csdsuper 发布时间: 2010-06-01
作者: dahai33 发布时间: 2010-06-09
作者: t20100504t 发布时间: 2010-06-10
作者: blogtjf 发布时间: 2010-06-10
作者: Swear_Max 发布时间: 2010-06-11
作者: hfCoder 发布时间: 2010-06-11
作者: wl500001 发布时间: 2010-06-11
作者: hfCoder 发布时间: 2010-06-11
作者: cjyh0004 发布时间: 2010-06-11
function drop()3
{
for(j = 8; j > 0; j--){
self.moveBy(0,j);
self.moveBy(j,0);
self.moveBy(0,-j);
self.moveBy(-j,0);
}
}
onLoad="drop()"
作者: Vampire_ycq 发布时间: 2010-06-17
作者: wang2129929 发布时间: 2010-06-17
作者: wxd024 发布时间: 2010-06-17
看都看不懂呵呵,还是LZ的方便啊
作者: wzp144650 发布时间: 2010-06-17