C#窗口程序里面如何用鼠标点击一下并在该位置画一张图
3个回答
展开全部
在控件的MouseDown事件里,处理画面的逻辑,以下是我写的示例代码,希望对你有帮助
void MouseDown(object sender, MouseEventArgs e)
{
if (e.Button != MouseButtons.Left)
{
return;
}
//给控件创建一个背景图片,我这里是用Panel控件实现的
if (null == panel1.BackgroundImage)
{
panel1.BackgroundImage = new Bitmap(panel1.Width, panel1.Height);
}
//在背景图片上绘制一个长100,高50的图片
Graphics g = Graphics.FromImage(panel1.BackgroundImage);
g.DrawImage(Image.FromFile(@"XXXXX\XXXX.jpg"),
e.X, e.Y, 100f, 50f);
g.Save();
//刷新绘制的区域,让图片显示出来
panel1.Invalidate(new Rectangle(e.X, e.Y, 100, 50));
}
void MouseDown(object sender, MouseEventArgs e)
{
if (e.Button != MouseButtons.Left)
{
return;
}
//给控件创建一个背景图片,我这里是用Panel控件实现的
if (null == panel1.BackgroundImage)
{
panel1.BackgroundImage = new Bitmap(panel1.Width, panel1.Height);
}
//在背景图片上绘制一个长100,高50的图片
Graphics g = Graphics.FromImage(panel1.BackgroundImage);
g.DrawImage(Image.FromFile(@"XXXXX\XXXX.jpg"),
e.X, e.Y, 100f, 50f);
g.Save();
//刷新绘制的区域,让图片显示出来
panel1.Invalidate(new Rectangle(e.X, e.Y, 100, 50));
}
展开全部
定义:List<Point> pointList = new List<Point>()
鼠标按下事件:
pointList.Add(new Point(e.x,e.y));
Form1.Invalidate();
窗口重画事件:
Graphics g = e.Graphics;
lock(pointList){
foreach(Point p in pointList)
{
g.DrawImage(...); // 需要画的图像,p 就是鼠标点击的位置
}
}
鼠标按下事件:
pointList.Add(new Point(e.x,e.y));
Form1.Invalidate();
窗口重画事件:
Graphics g = e.Graphics;
lock(pointList){
foreach(Point p in pointList)
{
g.DrawImage(...); // 需要画的图像,p 就是鼠标点击的位置
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
什么?说清楚
追问
我在一个panel里画了几张图片,我想在panel里点击一下鼠标在我鼠标点击的位置画一张图片。
来自:求助得到的回答
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询