您的位置:首页 > 编程语言 > C#

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

2009-12-25 09:29 405 查看
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# components null