转---《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#画线控件有所帮助

posted on 2011-11-17 12:55  Scorpionss  阅读(1037)  评论(0编辑  收藏  举报

导航