成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

C#畫直線實現實例解析

開發 后端
C#畫直線的具體實現是什么呢?C#畫直線的操作使用的方法是什么呢?那么這里向你介紹了一個完整的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.  
  8. namespace q2   
  9. {   
  10. static class Program   
  11. {   
  12. /// ﹤summary﹥   
  13. /// 應用程序的主入口點。   
  14. /// ﹤/summary﹥   
  15. [STAThread]   
  16. static void Main()   
  17. {   
  18. Application.EnableVisualStyles();   
  19. Application.SetCompatibleTextRenderingDefault(false);   
  20. Application.Run(new Form1());   
  21. }   
  22. }   
  23.  
  24. /// ﹤summary﹥   
  25. /// 線條對象   
  26. /// ﹤/summary﹥   
  27. class Line   
  28. {   
  29. /// ﹤summary﹥   
  30. /// 建立線條對象,并設置起點   
  31. /// ﹤/summary﹥   
  32. /// ﹤param name="startPoint"﹥此線條的起點﹤/param﹥   
  33. public Line(Point startPoint)   
  34. {   
  35. StartPoint = startPoint;   
  36. EndPoint = startPoint;   
  37. }   
  38. public Point StartPoint = Point.Empty;   
  39. public Point EndPoint = Point.Empty;   
  40. }   
  41.  
  42. public class DrawPanel : Control   
  43. {   
  44. public DrawPanel()   
  45. {   
  46. this.DoubleBuffered = true;   
  47. this.SetStyle(  
  48. ControlStyles.OptimizedDoubleBuffer |   
  49. ControlStyles.ResizeRedraw, true);   
  50. }   
  51. }   
  52.  
  53. /// ﹤summary﹥   
  54. /// C#畫直線之窗口定義   
  55. /// ﹤/summary﹥   
  56. public class Form1 : Form   
  57. {   
  58. public Form1()   
  59. {   
  60. drawPanel.BackColor = Color.White;   
  61. drawPanel.Cursor = Cursors.Cross;   
  62. drawPanel.Dock = DockStyle.Fill;   
  63. drawPanel.MouseDown +=   
  64. new MouseEventHandler(drawPanel_MouseDown);   
  65. drawPanel.MouseUp +=   
  66. new MouseEventHandler(drawPanel_MouseUp);   
  67. drawPanel.MouseMove +=   
  68. new MouseEventHandler(drawPanel_MouseMove);   
  69. drawPanel.Paint +=   
  70. new PaintEventHandler(drawPanel_Paint);   
  71. Controls.Add(drawPanel);   
  72. }   
  73.  
  74. /// ﹤summary﹥   
  75. /// C#畫直線之用于保存繪出線條的集合   
  76. /// ﹤/summary﹥   
  77. private List﹤Line﹥ lines = new List﹤Line﹥();   
  78.  
  79. /// ﹤summary﹥   
  80. /// 用于保存當前正在繪制的線條   
  81. /// ﹤/summary﹥   
  82. private Line drawingLine = null;   
  83.  
  84. /// ﹤summary﹥   
  85. /// 用于顯示繪圖的面板組件   
  86. /// ﹤/summary﹥   
  87. private DrawPanel drawPanel = new DrawPanel();   
  88.  
  89. /// ﹤summary﹥   
  90. /// 在繪圖區釋放鼠標,結束當前線條繪制   
  91. /// ﹤/summary﹥   
  92. /// ﹤param name="sender"﹥﹤/param﹥   
  93. /// ﹤param name="e"﹥﹤/param﹥   
  94. void drawPanel_MouseUp(object sender, MouseEventArgs e)   
  95. {   
  96. if (drawingLine == nullreturn;   
  97. drawingLine.EndPoint = e.Location;   
  98. drawingLine = null;   
  99. }   
  100.  
  101. /// ﹤summary﹥   
  102. /// 在繪圖區按下鼠標,開始繪制新線條   
  103. /// ﹤/summary﹥   
  104. /// ﹤param name="sender"﹥﹤/param﹥   
  105. /// ﹤param name="e"﹥﹤/param﹥   
  106. void drawPanel_MouseDown(object sender, MouseEventArgs e)   
  107. {   
  108. drawingLine = new Line(e.Location);   
  109. lines.Add(drawingLine);   
  110. }   
  111. ///C#畫直線  
  112. /// ﹤summary﹥   
  113. /// 在繪圖區移動鼠標時,如果正在繪制新線條,就更新繪制面板   
  114. /// ﹤/summary﹥   
  115. /// ﹤param name="sender"﹥﹤/param﹥   
  116. /// ﹤param name="e"﹥﹤/param﹥   
  117. void drawPanel_MouseMove(object sender, MouseEventArgs e)   
  118. {   
  119. if(drawingLine != null)   
  120. {   
  121. drawingLine.EndPoint = e.Location;   
  122. drawPanel.Invalidate();   
  123. }   
  124. }   
  125.  
  126. /// ﹤summary﹥   
  127. /// 繪制效果到面板   
  128. /// ﹤/summary﹥   
  129. /// ﹤param name="sender"﹥﹤/param﹥   
  130. /// ﹤param name="e"﹥﹤/param﹥   
  131. void drawPanel_Paint(object sender, PaintEventArgs e)   
  132. {   
  133. Bitmap bp = new Bitmap(  
  134. drawPanel.Width, drawPanel.Height); // 用于緩沖輸出的位圖對象   
  135. Graphics g = Graphics.FromImage(bp);   
  136.  
  137. g.SmoothingMode =   
  138. System.Drawing.Drawing2D.  
  139. SmoothingMode.AntiAlias; // 消鋸齒(可選項)   
  140.  
  141. Pen p = new Pen(Color.Black);   
  142. foreach (Line line in lines)   
  143. {   
  144. if (line == drawingLine)   
  145. {   
  146. // 當前繪制的線條是正在鼠標定位的線條   
  147. p.Color = Color.Blue;   
  148. }   
  149. else   
  150. {   
  151. p.Color = Color.Black;   
  152. }   
  153. g.DrawLine(p, line.StartPoint, line.EndPoint);   
  154. }   
  155. // 將緩沖位圖繪制到輸出   
  156. e.Graphics.DrawImage(bp, Point.Empty);   
  157. }   
  158. }   
  159. }  
  160. //C#畫直線  

C#畫直線的相關實例就向你演示到這里,希望對了解和學習C#畫直線的實現有所幫助。

【編輯推薦】

  1. C#單元測試的一個小故事
  2. C#單元測試概念及作用的淺析
  3. C#單元測試使用的必要性的淺析
  4. C#單元測試的運行淺析
  5. 常見的C#單元測試工具介紹
責任編輯:仲衡 來源: CSDN博客
相關推薦

2009-09-01 13:59:01

C#操作Excel

2009-09-03 17:23:45

C#發送郵件

2009-09-02 16:14:21

C#動態創建數組

2009-09-03 17:06:17

C#回車切換焦點

2009-09-03 12:52:50

C#打開記事本

2009-08-17 14:41:47

C#進度條實現

2009-08-27 18:09:49

C#接口的實現

2009-09-09 12:55:59

C# TextBox事

2009-09-03 10:52:41

C#遞歸樹

2009-08-31 17:16:12

C#實現接口

2009-08-14 09:50:46

C#復制構造函數

2009-08-17 17:15:48

C# 進度條效果

2009-09-07 03:58:42

WinForm傳值

2009-08-31 12:31:45

C#創建文件夾

2009-09-09 14:40:15

C# XML解析

2009-08-18 10:47:40

C#枚舉類型

2009-09-09 13:57:28

C# XML解析

2009-09-07 06:31:32

C#窗體移動

2009-08-26 12:14:44

C#打印設置

2009-08-19 16:09:15

C#操作Access
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 在线视频一区二区三区 | 国产日韩欧美在线观看 | 综合色播| 欧美综合视频在线 | 国产视频亚洲视频 | 天天曰夜夜 | 大学生a级毛片免费视频 | cao视频 | 国产一区91在线 | 天天操天天干天天透 | 九九九国产 | 国产精品视频入口 | 国产成人精品综合 | 成人午夜免费福利视频 | 日韩中文视频 | 91偷拍精品一区二区三区 | 国产精品亚洲片在线播放 | 久久综合九色综合欧美狠狠 | 国色天香综合网 | 91免费观看视频 | 成人一区二区三区 | 色综合九九 | 久久精品性视频 | 亚洲精品国产a久久久久久 中文字幕一区二区三区四区五区 | 不卡视频一区 | 欧美一级免费看 | 精品国产乱码久久久久久图片 | 成人福利视频 | 国产 欧美 日韩 一区 | 亚洲视频一区二区三区四区 | 精品中文在线 | 亚洲精品久久久久中文字幕欢迎你 | 国产欧美日韩一区二区三区在线观看 | 国产视频导航 | 免费观看成人鲁鲁鲁鲁鲁视频 | 日日摸天天添天天添破 | a在线视频观看 | 在线只有精品 | 精品久久国产 | 久热国产精品视频 | www国产成人 |