C#画直线的实现方法

发布时间:2021-06-16 14:36:00 作者:chen
来源:亿速云 阅读:554

本篇内容主要讲解“C#画直线的实现方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#画直线的实现方法”吧!

C#画直线的操作有的时候我们会在实际开发遇到这样的需求,那么C#画直线是如何实现的呢?这里我们来看看具体的实现代码,通过代码的介绍希望对你的开发有所帮助。

C#画直线实现实例:

//以下是完整代码,可以直接编译运行   //-----C#画直线---------   using System;   using System.Collections.Generic;   using System.Windows.Forms;   using System.Drawing;    namespace q2   {   static class Program   {   /// ﹤summary﹥   /// 应用程序的主入口点。   /// ﹤/summary﹥   [STAThread]   static void Main()   {   Application.EnableVisualStyles();   Application.SetCompatibleTextRenderingDefault(false);   Application.Run(new Form1());   }   }    /// ﹤summary﹥   /// 线条对象   /// ﹤/summary﹥   class Line   {   /// ﹤summary﹥   /// 建立线条对象,并设置起点   /// ﹤/summary﹥   /// ﹤param name="startPoint"﹥此线条的起点﹤/param﹥   public Line(Point startPoint)   {   StartPoint = startPoint;   EndPoint = startPoint;   }   public Point StartPoint = Point.Empty;   public Point EndPoint = Point.Empty;   }    public class DrawPanel : Control   {   public DrawPanel()   {   this.DoubleBuffered = true;   this.SetStyle(  ControlStyles.OptimizedDoubleBuffer |   ControlStyles.ResizeRedraw, true);   }   }    /// ﹤summary﹥   /// C#画直线之窗口定义   /// ﹤/summary﹥   public class Form1 : Form   {   public Form1()   {   drawPanel.BackColor = Color.White;   drawPanel.Cursor = Cursors.Cross;   drawPanel.Dock = DockStyle.Fill;   drawPanel.MouseDown +=   new MouseEventHandler(drawPanel_MouseDown);   drawPanel.MouseUp +=   new MouseEventHandler(drawPanel_MouseUp);   drawPanel.MouseMove +=   new MouseEventHandler(drawPanel_MouseMove);   drawPanel.Paint +=   new PaintEventHandler(drawPanel_Paint);   Controls.Add(drawPanel);   }    /// ﹤summary﹥   /// C#画直线之用于保存绘出线条的集合   /// ﹤/summary﹥   private List﹤Line﹥ lines = new List﹤Line﹥();    /// ﹤summary﹥   /// 用于保存当前正在绘制的线条   /// ﹤/summary﹥   private Line drawingLine = null;    /// ﹤summary﹥   /// 用于显示绘图的面板组件   /// ﹤/summary﹥   private DrawPanel drawPanel = new DrawPanel();    /// ﹤summary﹥   /// 在绘图区释放鼠标,结束当前线条绘制   /// ﹤/summary﹥   /// ﹤param name="sender"﹥﹤/param﹥   /// ﹤param name="e"﹥﹤/param﹥   void drawPanel_MouseUp(object sender, MouseEventArgs e)   {   if (drawingLine == null) return;   drawingLine.EndPoint = e.Location;   drawingLine = null;   }    /// ﹤summary﹥   /// 在绘图区按下鼠标,开始绘制新线条   /// ﹤/summary﹥   /// ﹤param name="sender"﹥﹤/param﹥   /// ﹤param name="e"﹥﹤/param﹥   void drawPanel_MouseDown(object sender, MouseEventArgs e)   {   drawingLine = new Line(e.Location);   lines.Add(drawingLine);   }   ///C#画直线  /// ﹤summary﹥   /// 在绘图区移动鼠标时,如果正在绘制新线条,就更新绘制面板   /// ﹤/summary﹥   /// ﹤param name="sender"﹥﹤/param﹥   /// ﹤param name="e"﹥﹤/param﹥   void drawPanel_MouseMove(object sender, MouseEventArgs e)   {   if(drawingLine != null)   {   drawingLine.EndPoint = e.Location;   drawPanel.Invalidate();   }   }    /// ﹤summary﹥   /// 绘制效果到面板   /// ﹤/summary﹥   /// ﹤param name="sender"﹥﹤/param﹥   /// ﹤param name="e"﹥﹤/param﹥   void drawPanel_Paint(object sender, PaintEventArgs e)   {   Bitmap bp = new Bitmap(  drawPanel.Width, drawPanel.Height); // 用于缓冲输出的位图对象   Graphics g = Graphics.FromImage(bp);    g.SmoothingMode =   System.Drawing.Drawing2D.  SmoothingMode.AntiAlias; // 消锯齿(可选项)    Pen p = new Pen(Color.Black);   foreach (Line line in lines)   {   if (line == drawingLine)   {   // 当前绘制的线条是正在鼠标定位的线条   p.Color = Color.Blue;   }   else   {   p.Color = Color.Black;   }   g.DrawLine(p, line.StartPoint, line.EndPoint);   }   // 将缓冲位图绘制到输出   e.Graphics.DrawImage(bp, Point.Empty);   }   }   }  //C#画直线

到此,相信大家对“C#画直线的实现方法”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

推荐阅读:
  1. canvas 每天一练 画直线
  2. html5 Canvas如何实现画直线与设置线条的样式

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

上一篇:Java中怎么实现一个JTable表格

下一篇:Spring security中怎么利用数据库实现账户密码认证

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》