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

Demo下载

http://www.cnblogs.com/drizzlecrj/archive/2006/12/20/598697.html

时间: 2024-11-01 15:16:11

C#模拟MSN窗体抖动的相关文章

linux中利用Systemtap注入延迟模拟IO设备抖动

当我们的IO密集型的应用怀疑设备的IO抖动,比如说一段时间的wait时间过长导致性能或其他疑难问题的时候,这个现象处理起来就比较棘手,因为硬件的抖动有偶发性很难重现或者重现的代价比较高. 幸运的是systemtap可以拯救我们.从原理上讲,我们应用的IO都是通过文件系统来访问的,不管read/write/sync都是,而且我们的文件大部分都是以buffered方式打开的.在这个模式下,如果pagecache不命中的话,就需要访问设备. 知道了这个基本的原理以后,我们就可以用万能的systemta

Ajax应用案例之MSN Space

ajax 我一直很推崇MSN Space的服务,对其相册服务和皮肤一直情有独钟.国内的播客,我首选MSN Space.也可能,MSN Space没有那么多炒作.  恩,言归正传.几天来研究一下MSN Space的Ajax应用.典型的,其应用主要体现在:网络日志的评论.固定链接.引用记录.自定义列表上面.了解Ajax之前,一直对其数据的获取方式很好奇.现在,大概略知一二了.如下图所示.  对于共享空间首页,"添加评论"."阅读评论"."固定链接".

Delphi模拟最小化恢复关闭按纽

我们做多文档应用程序开发时,如果在主From中指定mainMenu时,在主菜单上右角上会自动出现最小化,恢复,关闭按纽,但主菜单放入Toolbar等中时,该三个按纽不会自动出现,因此需要编程实现. 实现原理: 按纽的实现,从Tbitbtn继承下来最理想,但需要过滤TbitBtn的焦点响应消息,使其不能获得焦点状态. 按纽的功能的实现是比较关键的,Delphi中提供了标准action对象(Twindowclose)来实现关闭当前激活的子窗体的功能. 当没有提供最小化及恢复功能的Action,因此有

在Swing中设置模态窗体和启动位置

关于 Modal 窗体 在 Swing 中只有 JDialog 可以设置为 Modal 窗体,其方法可以在构造函数(例如"JDialog(Frame owner, boolean modal)")中传参数,也可以用 setModal(boolean b) 方法设定,这个方法是从 Dialog 类继承的. 在 JFrame 类中,无法通过如 JDialog 的方法设置 Modal 窗体,在 CSDN 有朋友尝试通过在 windowDeiconified() 时 requestFocus(

用Java SWT实现MSN风格的下拉框

SWT一个所谓的优点是它的本地化外观,因为它是通过JNI调用操作系统的组件,从而可以保证外观上适合大多数用户的需求,但是一些IM类软件商往往希望它们的产品有着一套独特的外观,这对SWT这种原生组件来说就有些力不从心了,严格来说如果你的用户对外观要求比较苛刻,那么Swing是首选,因为L&F机制可以确保你做到这一点,另外Swing还有着许多SWT不具备的优点,例如半透明组件.渲染等,但是少数的这些特性用SWT还是可以模拟的,本文就向大家介绍如何通过自定义组件实现MSN风格的下拉框. 通常来说,SW

如何让窗体像QQ一样抖动起来

            //下面是核心的代码             //首先我们来设置一下抖动的幅度             int rand = 15;//这里我设置5,大小大家自己在定             int frmx = this.Left;//获取一下窗体左上角X的坐标             int frmy = this.Top;//获取一下窗体左上角Y的坐标             //实例化随机数对象             Random random = new Ra

AJAX应用

ajax AJAX应用到的技术 AJAX涉及到的7项技术中,个人认为Javascript.XMLHttpRequest.DOM.XML比较有用. A.XMLHttpRequest对象 XMLHttpRequest是XMLHTTP组件的对象,通过这个对象,AJAX可以像桌面应用程序一样只同服务器进行数据层面的交换,而不用每次都刷新界面,也不用每次将数据处理的工作都交给服务器来做:这样既减轻了服务器负担又加快了响应速度.缩短了用户等待的时间. IE5.0开始,开发人员可以在Web页面内部使用XMLH

精华:AJAX开发简略 (第二部分)

ajax|精华 七.AJAX开发 到这里,已经可以清楚的知道AJAX是什么,AJAX能做什么,AJAX什么地方不好.如果你觉得AJAX真的能给你的开发工作带来改进的话,那么继续看看怎么使用AJAX吧. 7.1.AJAX应用到的技术 AJAX涉及到的7项技术中,个人认为Javascript.XMLHttpRequest.DOM.XML比较有用. A.XMLHttpRequest对象 XMLHttpRequest是XMLHTTP组件的对象,通过这个对象,AJAX可以像桌面应用程序一样只同服务器进行数

强烈推荐-ajax开发者必看的文章

ajax 七.AJAX开发 到这里,已经可以清楚的知道AJAX是什么,AJAX能做什么,AJAX什么地方不好.如果你觉得AJAX真的能给你的开发工作带来改进的话,那么继续看看怎么使用AJAX吧. 7.1.AJAX应用到的技术 AJAX涉及到的7项技术中,个人认为Javascript.XMLHttpRequest.DOM.XML比较有用.A.XMLHttpRequest对象 XMLHttpRequest是XMLHTTP组件的对象,通过这个对象,AJAX可以像桌面应用程序一样只同服务器进行数据层面的