C#模拟MSN窗体抖动的实现代码

 更新时间:2014年08月06日 10:12:59   投稿:shichen2014  
这篇文章主要介绍了C#模拟MSN窗体抖动的实现代码,非常实用的一个功能,需要的朋友可以参考下

基于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;
}
您可能感兴趣的文章:

相关文章

  • Unity3D自定义创建圆锥体

    Unity3D自定义创建圆锥体

    这篇文章主要为大家详细介绍了Unity3D自定义创建圆锥体,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-02-02
  • Unity的IPreprocessBuildWithReport实用案例深入解析

    Unity的IPreprocessBuildWithReport实用案例深入解析

    这篇文章主要为大家介绍了Unity的IPreprocessBuildWithReport实用案例深入解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-05
  • 基于C#实现简易的键盘记录器

    基于C#实现简易的键盘记录器

    本文将利用C#语言和HOOK技术来做一个键盘记录器,看看一天下来,我们点击了多少次键盘,哪些键的使用频率最高,感兴趣的小伙伴可以尝试一下
    2022-08-08
  • C#采用OpenXml给Word文档添加表格

    C#采用OpenXml给Word文档添加表格

    这篇文章主要介绍了C#采用OpenXml给Word文档添加表格的方法,是OpenXml操作Word的一个非常实用的技巧,需要的朋友可以参考下
    2014-09-09
  • C#中当前时间转为时间戳的3个方法

    C#中当前时间转为时间戳的3个方法

    在计算机应用世界里,无论是为了记录事件的发生时间、保障数据一致性还是提升安全性,时间戳都是不可或缺的重要工具,下面我们就来看看C#中转换当前时间为时间戳有哪些方法吧
    2024-12-12
  • C#泛型相关讲解

    C#泛型相关讲解

    我们在编写程序时,经常 遇到两个模块的功能非常相似,只是一个是处理int数据,另一个是处理string数据,或者其他自定义的数据类型
    2013-05-05
  • C#装箱和拆箱原理详解

    C#装箱和拆箱原理详解

    这篇文章通过图例主要介绍了C#装箱和拆箱原理,内容很简单,感兴趣的小伙伴们可以参考一下
    2015-10-10
  • C# EF Core可视化工具的使用及EF Core入门语句操作代码

    C# EF Core可视化工具的使用及EF Core入门语句操作代码

    EF Core 可用作对象关系映射程序 (O/RM),以便于 .NET 开发人员能够使用 .NET 对象来处理数据库,这样就不必经常编写大部分数据访问代码了,接下来通过本文给大家介绍C# EF Core可视化工具的使用及EF Core入门语句,感兴趣的朋友一起看看吧
    2022-02-02
  • c# 方法可变数量的参数

    c# 方法可变数量的参数

    这个方法除去params,是一个普通的方法,接受int数组,返回组中的所以项之和
    2012-10-10
  • C#词法分析器之输入缓冲和代码定位的应用分析

    C#词法分析器之输入缓冲和代码定位的应用分析

    本篇文章介绍了,C#词法分析器之输入缓冲和代码定位的应用分析。需要的朋友参考下
    2013-05-05

最新评论