//手工编写直线
private bool istrack = false;//按下true,放开false,不然一直画线
private Point beginpoint;
protected override void OnMouseDown(MouseEventArgs e)
{
beginpoint = new Point(e.X, e.Y);
istrack = true;
}
public keytest()
{
Cursor.Current = Cursors.IBeam;
//SizeF sf= CreateGraphics().MeasureString("测试graphics.measurestring", Font, Point.Empty, StringFormat.GenericTypographic);//sizef存储矩形的宽高度,由measurestring
}
protected override void OnMouseMove(MouseEventArgs e)
{
if (!istrack)
return;
Point endpoint = new Point(e.X, e.Y);
Graphics gp = CreateGraphics();
gp.DrawLine(new Pen(Color.Blue), beginpoint, endpoint);
gp.Dispose();
//beginpoint = endpoint;//加此行代码很重要要不加,效果出来就不是直线,而是一堆杂乱的排线,beginpoint=endpoint表示永远是从新位置开始绘制
}
public static void Main()
{
Application.Run(new keytest());
}
protected override void OnMouseUp(MouseEventArgs e)
{
istrack = false;
}
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9240380/viewspace-735634/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/9240380/viewspace-735634/