日期:2014-05-18  浏览次数:20841 次

C# 实现窗体抖动
http://blog.csdn.net/jianuMan/archive/2010/06/18/5678912.aspx

QQ有窗体抖动的功能 其实这个功能实现起来很简单。间隔一定时间,改变窗体的位置,必须是围绕起始位置改变窗体位置,否则就成窗体移动了。

C# code

using System;
using System.Drawing;
using System.Windows.Forms;

namespace twitter
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Random ran = new Random((int)DateTime.Now.Ticks);
            Point point = this.Location;
            for (int i = 0; i < 40; i++)
            {
                this.Location = new Point(point.X + ran.Next(8) - 4, point.Y + ran.Next(8) - 4);
                System.Threading.Thread.Sleep(15);
                this.Location = point;
                System.Threading.Thread.Sleep(15);
            }
        }
    }
}




------解决方案--------------------
楼主搞的不错啊!
顶一下

对于定时执行某些动作的代码,我认为Thread.Sleep()的方法更专业一点。

关于Timer 与 Thread.Sleep()的性能比较,这有个帖子
http://blog.csdn.net/gisfarmer/archive/2009/03/13/3986277.aspx
------解决方案--------------------
楼主用随机数的想法,很好很创意!!

#13楼说的那样,用上一大堆数学函数来计算是为什么?
抖动本来就是一个随机的动作啊,非要那么“专业”的抖才叫抖动吗?理论依据是什么?
------解决方案--------------------
应该在timer控制下抖动,而不是在一个for循环内,同意
------解决方案--------------------
學習了,感覺隨機的好