服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C# - C#实现窗体抖动的两种方法

C#实现窗体抖动的两种方法

2022-10-18 11:46英莱特——Dream C#

这篇文章主要为大家详细介绍了C#实现窗体抖动的两种方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了C#实现窗体抖动的具体代码,供大家参考,具体内容如下

原理:围绕中心点运动一圈

C#实现窗体抖动的两种方法

方法一:通过线程实现

需求:需要using System.Threading;命名空间和button按钮以及for循环

具体代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Threading;//添加线程
 
namespace Test_Window_jitter
{
 public partial class Form1 : Form
 {
  public Form1()
  {
   InitializeComponent();
  }
 
  private void Form1_Load(object sender, EventArgs e)
  {
   this.Location = new Point(Screen.PrimaryScreen.WorkingArea.Width/2-this.Width/2,Screen.PrimaryScreen.Bounds.Height/2-this.Height/2);
   button1.BackgroundImage = Image.FromFile("../../img/1.jpg");
   button1.BackgroundImageLayout = ImageLayout.Stretch;
  }
 
  private void button1_Click(object sender, EventArgs e)
  {
   int x = this.Left;
   int y = this.Top;
   for (int i = 0; i < 3; i++)
   {
    this.Location = new Point(x - 3, y);
    Thread.Sleep(10);//设置执行完上一步停留时间
    this.Location = new Point(x - 3, y - 3);
    Thread.Sleep(10);
    this.Location = new Point(x, y - 3);
    Thread.Sleep(10);
    this.Location = new Point(x + 3, y - 3);
    Thread.Sleep(10);
    this.Location = new Point(x + 3, y);
    Thread.Sleep(10);
    this.Location = new Point(x + 3, y + 3);
    Thread.Sleep(10);
    this.Location = new Point(x, y + 3);
    Thread.Sleep(10);
    this.Location = new Point(x - 3, y + 3);
    Thread.Sleep(10);
    this.Location = new Point(x - 3, y);
    Thread.Sleep(10);
    this.Location = new Point(x, y);
   }
  }
 }
}

方法二:通过计时器实现

需求:timer控件,button按钮,for循环

具体代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace Test_Window_jitter
{
 public partial class Form2 : Form
 {
  public Form2()
  {
   InitializeComponent();
  }
 
  private void Form2_Load(object sender, EventArgs e)
  {
   this.Location = new Point(Screen.PrimaryScreen.WorkingArea.Width / 2 - this.Width / 2, Screen.PrimaryScreen.Bounds.Height / 2 - this.Height / 2);
  }
 
  private void button1_Click(object sender, EventArgs e)
  {
   timer1.Start();
  }
 
  private void timer1_Tick(object sender, EventArgs e)
  {
   int x = this.Left;
   int y = this.Top;
   for (int i = 0; i < 10; i++)
   {
    this.Location = new Point(x - 10, y);
    this.Location = new Point(x - 10, y - 10);
    this.Location = new Point(x, y - 10);
    this.Location = new Point(x + 10, y - 10);
    this.Location = new Point(x + 10, y);
    this.Location = new Point(x + 10, y + 10);
    this.Location = new Point(x, y + 10);
    this.Location = new Point(x - 10, y + 10);
    this.Location = new Point(x - 10, y);
    this.Location = new Point(x, y);
   }
   timer1.Stop();
  }
 }
}

看完记得点赞,下期更精彩!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/liu991029/article/details/105605428

延伸 · 阅读

精彩推荐
  • C#深入分析C# 线程同步

    深入分析C# 线程同步

    这篇文章主要介绍了C# 线程同步的的相关资料,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下...

    JoeSnail3392022-09-15
  • C#C#实现汽车租赁系统项目

    C#实现汽车租赁系统项目

    这篇文章主要为大家详细介绍了C#实现汽车租赁系统项目,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    服务器端的cookie6002022-03-09
  • C#C#汉字转拼音实例(支持多音字)

    C#汉字转拼音实例(支持多音字)

    几年前就在网上看到过汉字转拼音的程序,大都就是按汉字的编码转换,单字对应的算法实现的。但是都有一个共同的缺点,不能支持多音字。本篇文章主...

    最爱晴天5902021-12-15
  • C#C#修改IIS站点framework版本号的方法

    C#修改IIS站点framework版本号的方法

    这篇文章主要介绍了C#修改IIS站点framework版本号的方法,涉及C#调用使用ASP.NET IIS注册工具Aspnet_regiis.exe进行IIS站点framework版本号修改的方法,具有一定参考借鉴...

    蓝图9182021-10-28
  • C#c#自定义Attribute获取接口实现示例代码

    c#自定义Attribute获取接口实现示例代码

    这篇文章主要给大家介绍了关于c#自定义Attribute获取接口实现的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用c#具有一定的参考学习价...

    麦叶7182022-08-07
  • C#深入理解C# 7.0中的Tuple特性

    深入理解C# 7.0中的Tuple特性

    这篇文章主要介绍了C#7中Tuple特性的相关资料,文中通过示例代码介绍的非常详细,相信对大家具有一定的参考价值,需要的朋友可以们下面来一起学习学...

    Tony9422021-12-30
  • C#C# WebApi 接口传参详解

    C# WebApi 接口传参详解

    这篇文章主要介绍了C# WebApi 接口传参详解,本篇打算通过get、post、put、delete四种请求方式分别谈谈基础类型(包括int/string/datetime等)、实体、数组等类型...

    懒得安分9902022-02-25
  • C#Unity实现音频播放管理器

    Unity实现音频播放管理器

    这篇文章主要为大家详细介绍了Unity实现音频播放管理器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    SandmanRUN11982022-10-09