怎么使用鼠标在窗体上画直线?

用左键或右键在窗体上不同地方单击时两点中间产生一条直线?
---------------------------------------------------------------

我这个人懒啊,只是告诉你如何在(1,1) 和 (100,100)之间划一条蓝线.
去看看GDI+吧.

Graphics dc =this.CreateGraphics();
Pen bluePen = new Pen(Color.Blue,1);
dc.DrawLine(bluePen,1,1,100,100);

---------------------------------------------------------------

帮你写个简单的,复杂一点的你要看看GDI+了。
private bool _drawing=false;
private System.Drawing.Point _pStart;
private System.Drawing.Point _pEnd;
//...
private void Form2_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
_drawing=!_drawing;
_pStart=new Point(e.X,e.Y);
}

private void Form2_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
{
if(!_drawing)
return;

Graphics g=this.CreateGraphics();
g.DrawLine(new Pen(this.BackColor,1),_pStart,_pEnd);
_pEnd=new Point(e.X,e.Y);
g.DrawLine(new Pen(Color.Black,1),_pStart,_pEnd);
}


too simple,sometimes naive :()


---------------------------------------------------------------

右键事件方法里:
Graphics g=this.CreateGraphics();
g.Clear();
如果只想清除刚画的那条,就用mousemove里的那句。


too simple,sometimes naive :()


---------------------------------------------------------------

你要的这个功能不用c#,就可以实现的。
用它只会变得复杂

Published At
Categories with Web编程
Tagged with
comments powered by Disqus