当前位置: 首页 > news >正文

自定义控件----流动线条

实现效果如下:

 

微信截图_20250729085939

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApp2
{
internal class Mybutton : Button
{
int offset = 0;//定义流动条得偏移量
Timer timer = null;//流动条流动定时器
//定义多边形点位
Point point1, point2, point3, point4, point5, point7, point8;
Point[] points = null;
private void InitializeComponent()
{
this.SuspendLayout();
this.ResumeLayout(false);

}
//构造方法用于处理事件
public Mybutton()
{
timer = new Timer();
timer.Interval = 100; // 设置定时器间隔为50毫秒
timer.Tick += new EventHandler(TimerTick);
timer.Start();
}

//定义阀门的颜色属性
private Color _valuecolor = Color.Red;
[Description("阀门颜色"), Category("自定义")]
public Color ValueColor
{
get
{
return _valuecolor;
}
set
{
_valuecolor = value;
Refresh();//刷新控件
}
}

protected override void OnPaint(PaintEventArgs pevent)//重绘方法
{
base.OnPaint(pevent);//执行基类自己得方法
this.Text = "";
point1 = new Point(this.Width / 4, this.Height / 3);
point2 = new Point(this.Width / 4, this.Height / 3 * 2);
point3 = new Point(this.Width / 2, this.Height / 2);
point4 = new Point(this.Width / 4 * 3, this.Height / 3);
point5 = new Point(this.Width / 4 * 3, this.Height / 3 * 2);
points = new Point[] { point1, point2, point3, point4, point5 };

Graphics graphics = pevent.Graphics;//获得画板
graphics.DrawPolygon(new Pen(ValueColor), points);//画多边形
graphics.FillPolygon(new SolidBrush(ValueColor), points);//填充图形

//画流动线
Pen pen1 = new Pen(ValueColor, 10);
pen1.DashStyle = DashStyle.Dash;
pen1.DashPattern = new float[] { 5, 2 };
graphics.DrawLine(pen1, offset, this.Height / 2, this.Width + offset, this.Height / 2);

}

private void TimerTick(object sender, EventArgs e)
{

offset += 2; // 每次定时器触发,移动偏移量
if (offset > 100) offset = 0; // 如果偏移量过大,重置为0,这里可以根据需要调整重置条件
this.Invalidate();// 请求重绘窗体
}

}
}

http://www.sczhlp.com/news/424.html

相关文章:

  • 7.28总结
  • 2023年八大最佳Codecademy替代平台
  • 扩散模型-一张图片是一个概率分布采样的结果-94 - jack
  • 移远EC800K, EG800AK的 openSDK 编译
  • V-Ray 7 安装图解教程 | 支持3ds Max 2021-2026 含语言补丁配置
  • 2025暑假作业(7.28~8.3)
  • sed基础
  • 如果你还有一些困惑 / 请贴着我的心倾听 - Urd
  • 【IEEE出版】第五届计算机应用、视觉与算法国际学术会议(CVAA 2025)
  • 【SPIE出版】第二届生物医药和智能技术国际学术会议(ICBIT 2025)
  • 职业学院游戏发布
  • 一款可视化无代码的爬虫软件–EasySpider
  • 新手小白如何通过云服务器用Docker免费搭建web应用
  • 网站漏洞扫描工具-Acunetix
  • 生成深度图的图像模型–ZoeDepth
  • 如何复刻github的项目和共享自己的项目
  • 强大的论文解读工具-SciSpace Copilot
  • 可控图像工具--DrawGAN
  • 分享我经常使用的神器小工具
  • easyspider使用教程
  • 干货来袭!5 分钟学会快速实现责任链,效率直接拉满!
  • AI 赋能的云原生应用:技术趋势与实践
  • 免费云端部署工具
  • 乐高模型开发工具-studio
  • 介绍几个AI绘画网站和AI换脸功能
  • Kaggle入门指南
  • 一些免费的线上学习网站
  • 写一个音乐爬虫
  • 写一个3D旋转的python程序
  • 网页爬虫