我想知道在画线的过程中,如何随着鼠标的移动而画线,当鼠标放下的时候,线画好了(只是一条线,而不是一大片扫过的部分)。
追答要那个耀眼的效果啊,麻烦而且累人
再加一个控件,比如说PictureBox,用它的事件和graphic去画,加一个mousemove事件,再弄一个开关,画法与上面一样,最后画好了再清picturebox,画到form上去:
class Line
{
public Line(Point pt1, Point pt2)
{
this.pt1 = pt1;
this.pt2 = pt2;
}
public Point pt1;
public Point pt2;
}
Graphics grapic;
Point firstpoint;
Point secondpoint;
bool moving = false;
List lines = new List();
private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
{
pictureBox1.Refresh();
pictureBox1.BackColor = Color.Transparent;
secondpoint.X = e.X;
secondpoint.Y = e.Y;
lines.Add(new Line(firstpoint, secondpoint));
foreach (Line line in lines)
{
grapic.DrawLine(Pens.Black, line.pt1, line.pt2);
}
moving = false;
}
private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
pictureBox1.Refresh();
foreach (Line line in lines)
{
grapic.DrawLine(Pens.Black, line.pt1, line.pt2);
}
firstpoint.X = e.X;
firstpoint.Y = e.Y;
moving = true;
}
private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
if (moving)
{
pictureBox1.Refresh();
foreach (Line line in lines)
{
grapic.DrawLine(Pens.Black, line.pt1, line.pt2);
}
pictureBox1.BackColor = Color.Transparent;
grapic.DrawLine(Pens.Black, firstpoint, new Point(e.X, e.Y));
}
}
在C#中,如何画线?
画线首先要有两个坐标 一个起始坐标 一个结束坐标 画线的方法是DrawLine();DrawLine()里面有3个参数 第一个参数是画笔,第二个是起始坐标,第三个是结束坐标 你在鼠标点击的事件中保存第一个坐标 然后再UP事件中保存第二个坐标就可以了 和简单 ...
C#如何用鼠标画直线?
当鼠标按下时(MouseDown事件),设置drawLine为true,并记录下当前鼠标位置作为起始点。当鼠标移动时(MouseMove事件),如果drawLine为true,则创建一个Graphics对象,并使用一个Pen对象在Form上从起始点画到当前鼠标位置。当鼠标松开时(MouseUp事件),设置drawLine为false,停止画线。注意,你应该在Windows...
如何在c#中绘图第一次点击显示圆点,第二次点击连成直线?
在 C# 中绘图时,可以通过捕获鼠标事件并绘制相应的图形,来实现第一次点击显示圆点,第二次点击连成直线的效果。以下是一个简单的实现方法:在 C# 窗体应用程序中添加一个 Panel 控件,用于显示绘图内容。在 Panel 控件的 Paint 事件中绘制图形。在 Panel 控件的 MouseClick 事件中捕获鼠标点击事件,并...
C#窗口程序里面如何用鼠标点击一下并在该位置画一张图
return;} \/\/给控件创建一个背景图片,我这里是用Panel控件实现的 if (null == panel1.BackgroundImage){ panel1.BackgroundImage = new Bitmap(panel1.Width, panel1.Height);} \/\/在背景图片上绘制一个长100,高50的图片 Graphics g = Graphics.FromImage(panel1.BackgroundImage);g.DrawImage(...
C#如何用鼠标画直线
在你鼠标按下以后,你已经画出了直线了,那么说明,你这方面还是有些了解的.要得到每一个点的像素值,有两个办法,一个办法是实时的,在鼠标运动事件中写一段代码,把当前的point对像里的值取出来,存到一预先设好的一个list或queue里就可以了,这个做法,是否会每一个像素都取,不一定,看你画的快慢了....
c# 如何记录鼠标按下和松开这两个事件的鼠标位置?
Point p;private void Form1_MouseDown(object sender, MouseEventArgs e){ p = new Point(e.X, e.Y); \/\/按下 } private void Form1_MouseUp(object sender, MouseEventArgs e){ p = new Point(e.X, e.Y); \/\/松开 }
C# winform 窗体里 用GDI+画一条直线 怎么用鼠标点击这条直线,触发事件...
首先你需要先将这个直线的坐标记录下来,记录起点终点即可。在窗体或者是你画线的控件中捕获click事件,在click事件里面获取当前鼠标的坐标位置,根据此坐标计算此点到记录的直线之间的距离,如果小于一定值,比如小于2个像素就认为点中了此直线,就可一触发其他事件执行操作了。关键是如何判断鼠标点中的点在...
C#中如何让鼠标点击的点连成线
见一个WinForm工程,把Form的Mouseclick和Paint事件绑定到下面两个函数即可。List<Point> pList = new List<Point>();private void Form1_MouseClick(object sender, MouseEventArgs e){ pList.Add(e.Location);this.Refresh();} private void Form1_Paint(object sender, PaintEventArgs e){ Point ...
如何在c#中实现单击一个按钮后,再在窗体内点击一次鼠标,把该按钮移动...
楼上说的可以 具体点,在你的class From1中,构造函数上面加一个 bool isClick=false;在button1_Click函数中 isClick=true;为窗体添加一个Click响应消息 在From1_Click函数中 if(isClick){ button1.Location=new Point(e.X-button1.Size.Width\/2,e.Y-button1.Size.Height\/2);isClick=false;}...
c#中怎样才能让datagrid中鼠标点击一行变色点下一行变色同时上一行恢复...
{ \/\/当鼠标停留时更改背景色 e.Row.Attributes.Add("onmouseover", " c=this.style.backgroundColor;this.style.backgroundColor='#00A9FF'");\/\/当鼠标移开时还原背景色 e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=c");} } 上面的代码写在GridView的RowDataBound事件...