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

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

    C#画线控件之横线

using System;  

using System.Collections;  

using System.ComponentModel;  

using System.Drawing;  

using System.Data;  

using System.Windows.Forms;  

 

namespace Jiashi.WinControls  

{  

 ///   

 /// LineX 画横线控件  

 ///   

 public class LineX : System.Windows.Forms.UserControl  

 {  

 

#region 属性定义  

private System.Drawing.Color lineColor;  

private int lineWidth;  

///   

/// 线的颜色属性  

///   

public System.Drawing.Color LineColor  

{  

 set 

 {  

this.lineColor=value;  

System.Windows.Forms.PaintEventArgs ep=  

new PaintEventArgs(this.CreateGraphics(),  

this.ClientRectangle);  

this.LineX_Paint(this,ep);  

 }  

 get{return this.lineColor;}  

}  

///   

/// 线的粗细  

///   

public int LineWidth  

{  

 set 

 {  

this.lineWidth=value;  

System.Windows.Forms.PaintEventArgs ep=  

new PaintEventArgs(this.CreateGraphics(),  

this.ClientRectangle);  

this.LineX_Paint(this,ep);  

 }  

 get{return this.lineWidth;}  

}  

#endregion  

private System.ComponentModel.Container components = null;  

 

///   

/// 构造函数初始颜色和线粗细  

///   

public LineX()  

{  

 InitializeComponent();  

 this.lineColor=this.ForeColor;  

 this.lineWidth=1;  

 

}  

 

///   

/// 清理所有正在使用的资源。  

///   

protected override void Dispose( bool disposing )  

{  

 if( disposing )  

 {  

if(components != null)  

{  

 components.Dispose();  

}  

 }  

 base.Dispose( disposing );  

}  

 

#region 组件设计器生成的代码  

///   

/// 设计器支持所需的方法 - 不要使用代码编辑器   

/// 修改此方法的内容。  

///   

private void InitializeComponent()  

{  

 //   

 // LineX  

 //   

 this.Name = "LineX";  

 this.Resize += new System.EventHandler(this.LineX_Resize);  

 this.Paint +=   

new System.Windows.Forms.PaintEventHandler(this.LineX_Paint);  

 

}  

#endregion  

 

private void LineX_Paint(object sender,  

 System.Windows.Forms.PaintEventArgs e)  

{  

 Graphics g=e.Graphics;  

 Pen myPen = new Pen(this.lineColor);  

 myPen.Width=this.lineWidth*2;  

 this.Height=this.LineWidth;  

 g.DrawLine(myPen,0,0,e.ClipRectangle.Right,0);  

}  

 

private void LineX_Resize(object sender, System.EventArgs e)  

{  

 this.Height=this.lineWidth;  

}  

 }  

}  

    C#画线控件之竖线

using System;  

using System.Collections;  

using System.ComponentModel;  

using System.Drawing;  

using System.Data;  

using System.Windows.Forms;  

 

namespace Jiashi.WinControls  

{  

 ///   

 /// LineY 画竖线控件  

 ///   

 public class LineY : System.Windows.Forms.UserControl  

 {  

 

#region 属性定义  

private System.Drawing.Color lineColor;  

private int lineWidth;  

///   

/// 线的颜色属性  

///   

public System.Drawing.Color LineColor  

{  

 set 

 {  

this.lineColor=value;  

System.Windows.Forms.PaintEventArgs ep=  

new PaintEventArgs(this.CreateGraphics(),  

this.ClientRectangle);  

this.LineY_Paint(this,ep);  

 }  

 get{return this.lineColor;}  

}  

///   

/// 线的粗细  

///   

public int LineWidth  

{  

 set 

 {  

this.lineWidth=value;  

System.Windows.Forms.PaintEventArgs ep=  

new PaintEventArgs(this.CreateGraphics(),  

this.ClientRectangle);  

this.LineY_Paint(this,ep);  

 }  

 get{return this.lineWidth;}  

}  

#endregion  

private System.ComponentModel.Container components = null;  

 

///   

/// 构造函数初始颜色和线粗细  

///   

public LineY()  

{  

 InitializeComponent();  

 this.lineColor=this.ForeColor;  

 this.lineWidth=1;  

 

}  

 

///   

/// 清理所有正在使用的资源。  

///   

protected override void Dispose( bool disposing )  

{  

 if( disposing )  

 {  

if(components != null)  

{  

 components.Dispose();  

}  

 }  

 base.Dispose( disposing );  

}  

 

#region 组件设计器生成的代码  

///   

/// 设计器支持所需的方法 - 不要使用代码编辑器   

/// 修改此方法的内容。  

///   

private void InitializeComponent()  

{  

 //   

 // LineY  

 //   

 this.Name = "LineY";  

 this.Resize +=   

new System.EventHandler(this.LineY_Resize);  

 this.Paint +=   

new System.Windows.Forms.PaintEventHandler(this.LineY_Paint);  

 

}  

#endregion  

 

private void LineY_Paint(  

object sender, System.Windows.Forms.PaintEventArgs e)  

{  

 Graphics g=e.Graphics;  

 Pen myPen = new Pen(this.lineColor);  

 myPen.Width=this.lineWidth*2;  

 this.Width=this.LineWidth;  

 g.DrawLine(myPen,0,0,0,e.ClipRectangle.Bottom);  

}  

 

private void LineY_Resize(  

object sender, System.EventArgs e)  

{  

 this.Width=this.lineWidth;  

}  

 }  

}  

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

你可能感兴趣的:(C#画线控件的开发应用实例解析)