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

转---《C#画线控件的开发应用实例解析》

2011-11-17 12:55 363 查看
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#画线控件有所帮助
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: