使用C# Form 简单的实现了弹幕效果

1.创建一个Form 设置

2.添加一个计时器

3. 代码

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Drawing.Text;

using System.Linq;

using System.Text;

using System.Threading;

using System.Threading.Tasks;

using System.Windows.Forms;

namespace DanMu

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void Form1_Load(object sender, EventArgs e)

{

Rectangle rec = Screen.GetWorkingArea(this);

this.Height = rec.Height / 3 * 2; // 3分之2

this.Width = rec.Width;

this.Location = new Point(0, 0);

this.BackColor = Color.White;

this.TransparencyKey = Color.White;

this.Opacity = 1;

AddTanMu("你开启了弹幕");

//测试运行

Thread th1 = new Thread(new ThreadStart(test));

th1.Start();

}

private void test()

{

while (true)

{

AddTanMu(Guid.NewGuid().ToString());

Thread.Sleep(new Random().Next(2000, 3500));

}

}

public void AddTanMu(String word)

{

Label label = new Label();

label.Text = word;

label.AutoSize = true;

label.ForeColor = Color.Red;

label.BackColor = Color.Transparent;

label.Font = new Font("宋体", 20);

label.Location = new Point(this.Width, new Random().Next(this.Height - label.Height));

this.Invoke(new Action(() =>

{

this.Controls.Add(label);

}));

}

private void Timer_Tick(object sender, EventArgs e)

{

//方法1:

//foreach (Label label in this.Controls)

//{

// Task.Run(() =>

// {

// //单独执行的委托,防止卡顿

// label.Invoke(new Action(() =>

// {

// //步数、速度

// for (int v = 0; v < 3; v++)

// {

// label.Left -= 2;

// }

// }));

// //超出移除

// if (label.Left + label.Width < 0)

// {

// this.Invoke(new Action(() =>

// {

// this.Controls.Remove(label);

// label.Dispose();

// }));

// }

// });

//}

//方法2:

foreach (Label label in this.Controls)

{

label.Invoke(new Action(() =>

{

//步数、速度

//【3(次数)*2(步数)=6(速度)】

for (int v = 0; v < 3; v++)

{

label.Left -= 2;

}

}));

//超出移除

if (label.Left + label.Width < 0)

{

label.Visible = false;

this.Controls.Remove(label);

}

}

}

}

}

4.效果

如有问题 请联系我 :QQ 971931543

c#控件弹幕效果_C# Form 实现桌面弹幕相关推荐

  1. Silverlight使用DataGrid的模板列(DataGridTemplateColumn)实现类似TreeListView控件的效果

    Silverlight使用DataGrid的模板列(DataGridTemplateColumn)实现类似TreeListView控件的效果 转载于:https://www.cnblogs.com/K ...

  2. [MFC] 几种子控件半透明效果的实现办法

    什么是"控件半透明效果" ? 如下图所示,美图秀秀中间的四个按钮,边缘四个角都是透明的,呈现出椭圆效果: 熟悉MFC开发的都知道 虽然四个按钮的边缘是椭圆的 实际上椭圆之外的角落 ...

  3. C#WPF实现TextBox控件水印效果的两种实现方法

    C#WPF实现TextBox控件水印效果的两种实现方法 在WPF实际项目中往往需要在TextBox中加入水印,来告诉使用者输入TextBox中的内容,如下图片所示: 下面介绍两种方式,来添加上图中的水 ...

  4. Android控件晃动效果实现

    Android控件晃动效果实现 原创 2016-08-12 亚运 Android学习交流 动画是android中的重要组成部分,可以让APP的交互更有趣味性,今天介绍的这个小实例可以用于提醒功能.首先 ...

  5. mschart走势图 vc_VC++操作MSChart表格控件,效果不错。

    [实例简介] 在VC++中使用MSChart表格控件,效果不错.MSChart,微软的一个很不错的画图控件,功能比较全面 [实例截图] [核心代码] TestMsChart └── TestMsCha ...

  6. c#控件弹幕效果_仿B站弹幕,极简Android开源弹幕控件:EasyDanmaku

    EasyDanmaku 一个方便简单的Android弹幕控件,顾名思义so easy. easydanmaku easydanmaku 原理简单,纯java实现,方便修改和扩展: 体积小,占用资源少, ...

  7. Windows Phone 的控件倾斜效果

    Windows Phone 7的系统设置里,按钮都有一个点击倾斜的效果,但自己添加的控件就没有.但微软提供了这个效果的代码:TiltEffect MSDN的介绍:http://msdn.microso ...

  8. 像小红书一样的图片裁剪控件联动效果

    今日科技快讯 据CNBC报道,美国法官已经要求特斯拉首席执行官埃隆·马斯克(Elon Musk)在未来两周内设法与美国证券交易委员会(SEC)达成和解协议.否则,法院将决定是否判马斯克犯有藐视法庭罪. ...

  9. qml 时间控件_Qt6官方最新消息:桌面样式Qt quick Controls 2支持大多控件,委托更少,运行更流畅...

    Qt是一个跨平台框架,通常用作图形工具包,它不仅创建CLI应用程序中非常有用.而且它也可以在三种主要的台式机操作系统以及移动操作系统(如Symbian,Nokia Belle,Meego Harmat ...

最新文章

  1. Get了!用Python制作数据预测集成工具 | 附代码
  2. Web前端求职时都会被问到的Redis面试题分享
  3. ajax 使用 JSONP 时,只能 GET 不能 POST
  4. 大数据分布式工作流任务调度系统DolphinScheduler v1.3.4
  5. CCF201609-1 最大波动
  6. 2009无线通信五大趋势 3G范围将覆盖全球
  7. linux目录与文件,Linux目录与文件基本操作
  8. 木马可以损坏计算机硬件么,台式电脑总是自动重启怎么处理
  9. 专访洪小文:创新的最后一公里是什么?
  10. java 雪崩效应,七、微服务架构中的“雪崩效应”
  11. VMware虚拟网络编辑器,没有桥接模式或本地计算机不显示网络适配器
  12. 正则表达式(第1部分) - 基本语法
  13. 使用Goodcrawler爬取700集的柯南
  14. c++中引用作为函数参数
  15. android 13 WMS/AMS系统开发-窗口层级相关SurfaceFlinger图层创建 第三节
  16. 蓝桥杯青少年创意编程大赛题解:数字组合
  17. [APIO2016]烟火表演
  18. 今夜月色必然明朗 水浒
  19. python学习之路:期权定价与python实现
  20. Cause: compileSdkVersion is not specified. Please add it to build.gradle

热门文章

  1. Gartner Q2服务器市场报告5大要点
  2. linux 用户创建、管理、权限分配
  3. mybatis动态SQL语句
  4. linux中yum搭建与配置
  5. .net 预编译 提示中导入的类型 冲突
  6. C#命名空间与类名的冲突
  7. 用户如何有效地利用数据字典(转)
  8. 提高 Web 站点性能的最佳实践
  9. iphone开发我的新浪微博客户端-用户登录准备篇(1.1)
  10. 软硬兼备 学做CIO