用左键或右键在窗体上不同地方单击时两点中间产生一条直线?
---------------------------------------------------------------
我这个人懒啊,只是告诉你如何在(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#,就可以实现的。
用它只会变得复杂