C#实现窗体抖动

简介: C#实现窗体抖动

P2P聊天的时候可以发送抖一抖,但是前提自己得先实现抖一抖,再通过网络发送吧。本文只是将基础的本地抖一抖实现了,局域网发送抖一抖,下一篇博客安排。


窗体抖动封装一个类内,使用时直接调用即可

public class Shake
{
    /// <summary>
    /// 震动方法
    /// </summary>
    /// <param name="form">窗体</param>
    public void Vibration(Form form)
    {
        Point pOld = form.Location;//原来的位置
        int radius = 3;//半径
        for (int n = 0; n < 3; n++) //旋转圈数
        {
            //右半圆逆时针
            for (int i = -radius; i <= radius; i++)
            {
                 int x = Convert.ToInt32(Math.Sqrt(radius * radius - i * i));
                 int y = -i;
                 form.Location = new Point(pOld.X + x, pOld.Y + y);
                    Thread.Sleep(10);
            }
            //左半圆逆时针
            for (int j = radius; j >= -radius; j--)
            {
                 int x = -Convert.ToInt32(Math.Sqrt(radius * radius - j * j));
                 int y = -j;
                 form.Location = new Point(pOld.X + x, pOld.Y + y);
                 Thread.Sleep(10);
            }
        }
        //抖动完成,恢复原来位置
        form.Location = pOld;
    }
}

U层直接调用

Shake shake = new Shake();

shake.Vibration(this);//将窗体传进去

看效果:(录屏看着不太明显,真是观感还是挺明显的。嘿嘿嘿)

image.png



如果本篇博客对您有一定的帮助,大家记得留言+点赞哦。


相关文章
|
6月前
|
Java 数据库 C#
C#winforms实现windows窗体人脸识别
C#winforms实现windows窗体人脸识别
|
关系型数据库 MySQL C#
C# winform 一个窗体需要调用自定义用户控件的控件名称
给用户控件ucQRCode增加属性: //二维码图片 private PictureBox _pictureBoxFSHLQrCode; public PictureBox PictureBoxFSHLQrCode {   get { return _pictureBoxFSHLQrCode; }   set { this.pictureBoxFSHLQrCode = value; } } 在Form1窗体直接调用即可: ucQRCode uQRCode=new ucQRCode(); ucQRCode.PictureBoxFSHLQrCode.属性= 要复制或传给用户控件上的控件的值
70 0
|
1月前
|
API C# Windows
【C#】在winform中如何实现嵌入第三方软件窗体
【C#】在winform中如何实现嵌入第三方软件窗体
62 0
|
4月前
|
开发框架 数据可视化 C#
|
6月前
|
C#
C#如何实现窗体最小化到托盘
C#如何实现窗体最小化到托盘
66 0
|
6月前
|
JavaScript Linux C#
【傻瓜级JS-DLL-WINCC-PLC交互】1.C#用windows窗体控件创建.net控件
【傻瓜级JS-DLL-WINCC-PLC交互】1.C#用windows窗体控件创建.net控件
140 0
|
6月前
|
C# Windows
C#安装“Windows 窗体应用(.NET Framework)”
C#安装“Windows 窗体应用(.NET Framework)”
162 0
|
11月前
|
C# 数据安全/隐私保护
C# 窗体之间参数互相传递的两种方法与使用
C# 窗体之间参数互相传递的两种方法与使用
|
11月前
|
C# Kotlin
C#is、as关键字及获取当前活动窗体的实例
这篇日志记录一下C#中is关键字及as关键字的用法。 Is :判断检查对象是否与给定类型兼容 As :将对象转换为指定类型(强转),就跟(int )这样的用法是一样的。 获取当前窗体的活动子窗体。
56 0
|
C# 数据安全/隐私保护
ApeForms | C# WinForm窗体控件平滑减速运动
在桌面软件开发中,有时会需要控制窗体或控件移动以实现某些界面效果,比如幻灯片换页、侧面的展开栏等。 通常情况下我们会使用Timer以每隔一段时间修改一下坐标位置的方式来实现目标对象的位移效果,但通过这个方式实现的动效存在几个问题: 匀速运动效果生硬; 运动过程中不便灵活改变运动状态(如侧栏展开一半时令其收起); 动效多时需要创建多个Timer对象,不易管理且占用资源; ApeForms中为控件和窗体提供了平滑运动的扩展方法,很好的解决了这些问题。不仅是坐标的平滑运动,还有控件\窗体尺寸的平滑变化、透明度的平滑变化。允许在变化的中途随时更改目标坐标\尺寸\透明度,且使用共享的Timer
11379 1
ApeForms | C# WinForm窗体控件平滑减速运动