自己绘制图片的移动

czzdwjg 2008-02-28 05:32:41
我用窗体的Paint事件绘制了一个图形,但是想让它移动,不想把画的图放在pictureBox1里或者其它的容器里移动,不知道代码怎么写,希望能帮我解决下?
如果用Paint事件绘制的图片不能移动,那么希望能给段代码,能让自己绘制的图片移动的?谢谢!
...全文
109 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
czzdwjg 2008-02-29
  • 打赏
  • 举报
回复
现在知道了,谢谢大家了。
czzdwjg 2008-02-29
  • 打赏
  • 举报
回复
哦,了解了谢谢啊,不过能不能在给我个不用Form1_MouseMove这个事件的代码,而是用keydown这个事件的代码?
dingkai19830 2008-02-28
  • 打赏
  • 举报
回复
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace play
{
public partial class Form1 : Form
{
int x;
int y;

public Form1()
{
InitializeComponent();
}

protected override void OnPaint(PaintEventArgs e)
{
Graphics g = e.Graphics;
Image img = new Bitmap(@"E:\VsProject\play\x1.gif");
g.DrawImageUnscaled(img, x, y);
}


private void Form1_MouseMove(object sender, MouseEventArgs e)
{
x = e.X;
y = e.Y;
this.Refresh();


}
}
}


记得在消息中启用Form1_MouseMove
并在E:\VsProject\play\x1.gif 有这个gif文件
csharp_start 2008-02-28
  • 打赏
  • 举报
回复
你要在FORM.MOUSEDOWN事件中调用一个事件,当然这个事件是你自己来写的,就是HitTest,也就是通过鼠标点下的坐标来获得当前的绘制控件(具体的方法就是要在绘制的时候给这个图形定义一个区域,鼠标点下的位置要和这个区域比较,如果在这个区域里,那么你要引发重绘动作,让这个图形好象被"选中"),然后还要在mousemove,mouseleave等事件中再次设置这个图形的区域,并且引发重绘动作.大概就是这个思路了.

111,116

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧