C# Winform画线

在Winform中实现的效果如下:

 

WPF画线参考:C# WPF画线 - 十年新 - 博客园 (cnblogs.com)

代码请参考:

复制代码
 1 using System.Drawing;
 2 using System.Drawing.Drawing2D;
 3 using System.Windows.Forms;
 4 
 5 namespace DrawLineDemo
 6 {
 7     public partial class Form1 : Form
 8     {
 9         public Form1()
10         {
11             InitializeComponent();
12         }
13 
14         public Point PointStart, PointEnd;//定义连线之间的两点,PointStart:起始点;PointEnd:结束点;
15         public int Flag = 0;
16 
17         private void Form1_MouseUp(object sender, MouseEventArgs e)
18         {
19             Flag = 0;
20         }
21 
22         private void Form1_MouseMove(object sender, MouseEventArgs e)
23         {
24             Text = "Location:X=" + e.X.ToString() + ",Y=" + e.Y.ToString();
25             if (Flag == 0)
26                 return;
27             Pen pen = new Pen(Color.Gray, 1);//灰色画笔,宽度为1
28             pen.DashStyle = DashStyle.Custom;
29             pen.DashPattern = new float[] { 9f, 1f };//虚线:实体和空白的比例
30             pen.StartCap = LineCap.RoundAnchor;//圆点开始
31             pen.EndCap = LineCap.ArrowAnchor;//结束为箭头
32             Graphics g = CreateGraphics();
33             //指定画图的呈现质量
34             g.SmoothingMode = SmoothingMode.HighQuality;
35             g.InterpolationMode = InterpolationMode.HighQualityBicubic;
36             g.CompositingQuality = CompositingQuality.HighQuality;
37             PointEnd.X = e.X;
38             PointEnd.Y = e.Y;
39             g.Clear(BackColor);//清除之前的画线
40             g.DrawLine(pen, PointStart.X, PointStart.Y, PointEnd.X, PointEnd.Y);//画线
41         }
42 
43         private void Form1_MouseDown(object sender, MouseEventArgs e)
44         {
45             Flag = 1;
46             PointStart.X = e.X;
47             PointStart.Y = e.Y;
48         }
49     }
50 }
复制代码

 

posted @   新*  阅读(4663)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)

喜欢请打赏

扫描二维码打赏

支付宝打赏

点击右上角即可分享
微信分享提示