C#画线控件的开发应用实例解析

开发 后端
C#画线控件是什么呢?是如何使用的呢?那么这里向你介绍了C#画线控件开发中的两种,分别是横线和竖线的实现,希望对你了解和学习C#画线控件有所帮助。

C#画线控件的应用实例介绍之前我们要明白在C#中没有画线的控件,这里写了一个,大家分享。共有两个控件分别是画横线和画竖线的,关于怎么画斜线我还没没有,有兴趣的可以做一个大家分享。

C#画线控件之横线

  1. using System;  
  2. using System.Collections;  
  3. using System.ComponentModel;  
  4. using System.Drawing;  
  5. using System.Data;  
  6. using System.Windows.Forms;  
  7.  
  8. namespace Jiashi.WinControls  
  9. {  
  10.  ///   
  11.  /// LineX 画横线控件  
  12.  ///   
  13.  public class LineX : System.Windows.Forms.UserControl  
  14.  {  
  15.  
  16. #region 属性定义  
  17. private System.Drawing.Color lineColor;  
  18. private int lineWidth;  
  19. ///   
  20. /// 线的颜色属性  
  21. ///   
  22. public System.Drawing.Color LineColor  
  23. {  
  24.  set 
  25.  {  
  26. this.lineColor=value;  
  27. System.Windows.Forms.PaintEventArgs ep=  
  28. new PaintEventArgs(this.CreateGraphics(),  
  29. this.ClientRectangle);  
  30. this.LineX_Paint(this,ep);  
  31.  }  
  32.  get{return this.lineColor;}  
  33. }  
  34. ///   
  35. /// 线的粗细  
  36. ///   
  37. public int LineWidth  
  38. {  
  39.  set 
  40.  {  
  41. this.lineWidth=value;  
  42. System.Windows.Forms.PaintEventArgs ep=  
  43. new PaintEventArgs(this.CreateGraphics(),  
  44. this.ClientRectangle);  
  45. this.LineX_Paint(this,ep);  
  46.  }  
  47.  get{return this.lineWidth;}  
  48. }  
  49. #endregion  
  50. private System.ComponentModel.Container components = null;  
  51.  
  52. ///   
  53. /// 构造函数初始颜色和线粗细  
  54. ///   
  55. public LineX()  
  56. {  
  57.  InitializeComponent();  
  58.  this.lineColor=this.ForeColor;  
  59.  this.lineWidth=1;  
  60.  
  61. }  
  62.  
  63. ///   
  64. /// 清理所有正在使用的资源。  
  65. ///   
  66. protected override void Dispose( bool disposing )  
  67. {  
  68.  if( disposing )  
  69.  {  
  70. if(components != null)  
  71. {  
  72.  components.Dispose();  
  73. }  
  74.  }  
  75.  base.Dispose( disposing );  
  76. }  
  77.  
  78. #region 组件设计器生成的代码  
  79. ///   
  80. /// 设计器支持所需的方法 - 不要使用代码编辑器   
  81. /// 修改此方法的内容。  
  82. ///   
  83. private void InitializeComponent()  
  84. {  
  85.  //   
  86.  // LineX  
  87.  //   
  88.  this.Name = "LineX";  
  89.  this.Resize += new System.EventHandler(this.LineX_Resize);  
  90.  this.Paint +=   
  91. new System.Windows.Forms.PaintEventHandler(this.LineX_Paint);  
  92.  
  93. }  
  94. #endregion  
  95.  
  96. private void LineX_Paint(object sender,  
  97.  System.Windows.Forms.PaintEventArgs e)  
  98. {  
  99.  Graphics g=e.Graphics;  
  100.  Pen myPen = new Pen(this.lineColor);  
  101.  myPen.Width=this.lineWidth*2;  
  102.  this.Height=this.LineWidth;  
  103.  g.DrawLine(myPen,0,0,e.ClipRectangle.Right,0);  
  104. }  
  105.  
  106. private void LineX_Resize(object sender, System.EventArgs e)  
  107. {  
  108.  this.Height=this.lineWidth;  
  109. }  
  110.  }  
  111. }  

C#画线控件之竖线

  1. using System;  
  2. using System.Collections;  
  3. using System.ComponentModel;  
  4. using System.Drawing;  
  5. using System.Data;  
  6. using System.Windows.Forms;  
  7.  
  8. namespace Jiashi.WinControls  
  9. {  
  10.  ///   
  11.  /// LineY 画竖线控件  
  12.  ///   
  13.  public class LineY : System.Windows.Forms.UserControl  
  14.  {  
  15.  
  16. #region 属性定义  
  17. private System.Drawing.Color lineColor;  
  18. private int lineWidth;  
  19. ///   
  20. /// 线的颜色属性  
  21. ///   
  22. public System.Drawing.Color LineColor  
  23. {  
  24.  set 
  25.  {  
  26. this.lineColor=value;  
  27. System.Windows.Forms.PaintEventArgs ep=  
  28. new PaintEventArgs(this.CreateGraphics(),  
  29. this.ClientRectangle);  
  30. this.LineY_Paint(this,ep);  
  31.  }  
  32.  get{return this.lineColor;}  
  33. }  
  34. ///   
  35. /// 线的粗细  
  36. ///   
  37. public int LineWidth  
  38. {  
  39.  set 
  40.  {  
  41. this.lineWidth=value;  
  42. System.Windows.Forms.PaintEventArgs ep=  
  43. new PaintEventArgs(this.CreateGraphics(),  
  44. this.ClientRectangle);  
  45. this.LineY_Paint(this,ep);  
  46.  }  
  47.  get{return this.lineWidth;}  
  48. }  
  49. #endregion  
  50. private System.ComponentModel.Container components = null;  
  51.  
  52. ///   
  53. /// 构造函数初始颜色和线粗细  
  54. ///   
  55. public LineY()  
  56. {  
  57.  InitializeComponent();  
  58.  this.lineColor=this.ForeColor;  
  59.  this.lineWidth=1;  
  60.  
  61. }  
  62.  
  63. ///   
  64. /// 清理所有正在使用的资源。  
  65. ///   
  66. protected override void Dispose( bool disposing )  
  67. {  
  68.  if( disposing )  
  69.  {  
  70. if(components != null)  
  71. {  
  72.  components.Dispose();  
  73. }  
  74.  }  
  75.  base.Dispose( disposing );  
  76. }  
  77.  
  78. #region 组件设计器生成的代码  
  79. ///   
  80. /// 设计器支持所需的方法 - 不要使用代码编辑器   
  81. /// 修改此方法的内容。  
  82. ///   
  83. private void InitializeComponent()  
  84. {  
  85.  //   
  86.  // LineY  
  87.  //   
  88.  this.Name = "LineY";  
  89.  this.Resize +=   
  90. new System.EventHandler(this.LineY_Resize);  
  91.  this.Paint +=   
  92. new System.Windows.Forms.PaintEventHandler(this.LineY_Paint);  
  93.  
  94. }  
  95. #endregion  
  96.  
  97. private void LineY_Paint(  
  98. object sender, System.Windows.Forms.PaintEventArgs e)  
  99. {  
  100.  Graphics g=e.Graphics;  
  101.  Pen myPen = new Pen(this.lineColor);  
  102.  myPen.Width=this.lineWidth*2;  
  103.  this.Width=this.LineWidth;  
  104.  g.DrawLine(myPen,0,0,0,e.ClipRectangle.Bottom);  
  105. }  
  106.  
  107. private void LineY_Resize(  
  108. object sender, System.EventArgs e)  
  109. {  
  110.  this.Width=this.lineWidth;  
  111. }  
  112.  }  
  113. }  

C#画线控件的开发就向你介绍到这里,希望对你了解和学习C#画线控件有所帮助。

【编辑推荐】

  1. C#单元测试概念及作用的浅析
  2. C#单元测试使用的必要性的浅析
  3. C#单元测试的运行浅析
  4. 常见的C#单元测试工具介绍
  5. C#画直线实现实例解析
责任编辑:仲衡 来源: cnblogs
相关推荐

2009-09-03 15:43:21

C#时间计算

2009-09-03 09:16:35

C#递归函数

2009-08-28 11:09:35

C#数组初始化

2009-08-26 13:36:33

C#打印控件

2009-08-31 17:16:12

C#实现接口

2009-08-27 17:40:21

C#接口的作用

2009-09-09 14:40:15

C# XML解析

2009-08-31 17:30:10

C#接口的作用

2009-08-18 10:47:40

C#枚举类型

2009-09-09 13:57:28

C# XML解析

2009-08-24 10:10:09

C#复合控件

2009-09-02 19:12:37

C#递归

2009-08-26 12:14:44

C#打印设置

2009-08-31 18:17:32

C#接口编程

2009-09-07 06:31:32

C#窗体移动

2009-08-19 16:09:15

C#操作Access

2009-08-28 15:37:22

C#线程类的定义

2009-08-17 17:49:20

C# 枚举

2009-09-11 12:31:52

C#实例详解TypeConvert

2009-09-10 10:22:05

C# TextBox
点赞
收藏

51CTO技术栈公众号