我们专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

C#画直线实现实例解析

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

临江网站建设公司成都创新互联公司,临江网站设计制作,有大型网站制作公司丰富经验。已为临江近千家提供企业网站建设服务。企业网站搭建\外贸网站建设要多少钱,请找那个售后服务好的临江做网站的公司定做!

C#画直线实现实例:

 
 
 
  1. //以下是完整代码,可以直接编译运行 
  2. //-----C#画直线--------- 
  3. using System; 
  4. using System.Collections.Generic; 
  5. using System.Windows.Forms; 
  6. using System.Drawing; 
  7. namespace q2 
  8. { 
  9. static class Program 
  10. { 
  11. /// ﹤summary﹥ 
  12. /// 应用程序的主入口点。 
  13. /// ﹤/summary﹥ 
  14. [STAThread] 
  15. static void Main() 
  16. { 
  17. Application.EnableVisualStyles(); 
  18. Application.SetCompatibleTextRenderingDefault(false); 
  19. Application.Run(new Form1()); 
  20. } 
  21. } 
  22. /// ﹤summary﹥ 
  23. /// 线条对象 
  24. /// ﹤/summary﹥ 
  25. class Line 
  26. { 
  27. /// ﹤summary﹥ 
  28. /// 建立线条对象,并设置起点 
  29. /// ﹤/summary﹥ 
  30. /// ﹤param name="startPoint"﹥此线条的起点﹤/param﹥ 
  31. public Line(Point startPoint) 
  32. { 
  33. StartPoint = startPoint; 
  34. EndPoint = startPoint; 
  35. } 
  36. public Point StartPoint = Point.Empty; 
  37. public Point EndPoint = Point.Empty; 
  38. } 
  39. public class DrawPanel : Control 
  40. { 
  41. public DrawPanel() 
  42. { 
  43. this.DoubleBuffered = true; 
  44. this.SetStyle(
  45. ControlStyles.OptimizedDoubleBuffer | 
  46. ControlStyles.ResizeRedraw, true); 
  47. } 
  48. } 
  49. /// ﹤summary﹥ 
  50. /// C#画直线之窗口定义 
  51. /// ﹤/summary﹥ 
  52. public class Form1 : Form 
  53. { 
  54. public Form1() 
  55. { 
  56. drawPanel.BackColor = Color.White; 
  57. drawPanel.Cursor = Cursors.Cross; 
  58. drawPanel.Dock = DockStyle.Fill; 
  59. drawPanel.MouseDown += 
  60. new MouseEventHandler(drawPanel_MouseDown); 
  61. drawPanel.MouseUp += 
  62. new MouseEventHandler(drawPanel_MouseUp); 
  63. drawPanel.MouseMove += 
  64. new MouseEventHandler(drawPanel_MouseMove); 
  65. drawPanel.Paint += 
  66. new PaintEventHandler(drawPanel_Paint); 
  67. Controls.Add(drawPanel); 
  68. } 
  69. /// ﹤summary﹥ 
  70. /// C#画直线之用于保存绘出线条的集合 
  71. /// ﹤/summary﹥ 
  72. private List﹤Line﹥ lines = new List﹤Line﹥(); 
  73. /// ﹤summary﹥ 
  74. /// 用于保存当前正在绘制的线条 
  75. /// ﹤/summary﹥ 
  76. private Line drawingLine = null; 
  77. /// ﹤summary﹥ 
  78. /// 用于显示绘图的面板组件 
  79. /// ﹤/summary﹥ 
  80. private DrawPanel drawPanel = new DrawPanel(); 
  81. /// ﹤summary﹥ 
  82. /// 在绘图区释放鼠标,结束当前线条绘制 
  83. /// ﹤/summary﹥ 
  84. /// ﹤param name="sender"﹥﹤/param﹥ 
  85. /// ﹤param name="e"﹥﹤/param﹥ 
  86. void drawPanel_MouseUp(object sender, MouseEventArgs e) 
  87. { 
  88. if (drawingLine == null) return; 
  89. drawingLine.EndPoint = e.Location; 
  90. drawingLine = null; 
  91. } 
  92. /// ﹤summary﹥ 
  93. /// 在绘图区按下鼠标,开始绘制新线条 
  94. /// ﹤/summary﹥ 
  95. /// ﹤param name="sender"﹥﹤/param﹥ 
  96. /// ﹤param name="e"﹥﹤/param﹥ 
  97. void drawPanel_MouseDown(object sender, MouseEventArgs e) 
  98. { 
  99. drawingLine = new Line(e.Location); 
  100. lines.Add(drawingLine); 
  101. } 
  102. ///C#画直线
  103. /// ﹤summary﹥ 
  104. /// 在绘图区移动鼠标时,如果正在绘制新线条,就更新绘制面板 
  105. /// ﹤/summary﹥ 
  106. /// ﹤param name="sender"﹥﹤/param﹥ 
  107. /// ﹤param name="e"﹥﹤/param﹥ 
  108. void drawPanel_MouseMove(object sender, MouseEventArgs e) 
  109. { 
  110. if(drawingLine != null) 
  111. { 
  112. drawingLine.EndPoint = e.Location; 
  113. drawPanel.Invalidate(); 
  114. } 
  115. } 
  116. /// ﹤summary﹥ 
  117. /// 绘制效果到面板 
  118. /// ﹤/summary﹥ 
  119. /// ﹤param name="sender"﹥﹤/param﹥ 
  120. /// ﹤param name="e"﹥﹤/param﹥ 
  121. void drawPanel_Paint(object sender, PaintEventArgs e) 
  122. { 
  123. Bitmap bp = new Bitmap(
  124. drawPanel.Width, drawPanel.Height); // 用于缓冲输出的位图对象 
  125. Graphics g = Graphics.FromImage(bp); 
  126. g.SmoothingMode = 
  127. System.Drawing.Drawing2D.
  128. SmoothingMode.AntiAlias; // 消锯齿(可选项) 
  129. Pen p = new Pen(Color.Black); 
  130. foreach (Line line in lines) 
  131. { 
  132. if (line == drawingLine) 
  133. { 
  134. // 当前绘制的线条是正在鼠标定位的线条 
  135. p.Color = Color.Blue; 
  136. } 
  137. else 
  138. { 
  139. p.Color = Color.Black; 
  140. } 
  141. g.DrawLine(p, line.StartPoint, line.EndPoint); 
  142. } 
  143. // 将缓冲位图绘制到输出 
  144. e.Graphics.DrawImage(bp, Point.Empty); 
  145. } 
  146. } 
  147. }
  148. //C#画直线

C#画直线的相关实例就向你演示到这里,希望对了解和学习C#画直线的实现有所帮助。


网站名称:C#画直线实现实例解析
本文网址:http://www.swkodf.com/article/djiddcc.html

其他资讯