zoukankan      html  css  js  c++  java
  • C#模拟MSN窗体抖动

    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;
            }

  • 相关阅读:
    qt中线程的使用方法
    QT中定时器的使用方法
    Common Lisp学习笔记(八)
    Common Lisp学习笔记(七)
    Common Lisp学习笔记(六)
    vim使用笔记
    Django学习笔记:urlresolvers
    python closures and decorators
    规范命名:变量名的力量
    eclipse openGL glut运行环境配置
  • 原文地址:https://www.cnblogs.com/gc2013/p/3719339.html
Copyright © 2011-2022 走看看