问一个 关于图片移动浏览的问题 本帖最后由 nice000 于 2011-07-20 15:58:25 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 picturebox有mousemove啊,按下后,记录mosemove事件中的左边,然后移动pic的left和top "记录mosemove事件中的左边"?具体实现语句怎么写呢?看的不太明白呢。我是想知道鼠标左键点击后在picturebox中移动的距离,然后我用DrawImage吧图片按照移动后的距离重画 flash里面简单,只要两句话。.net认为这样的功能对于程序员来说太简单,就没做。写一个类,继承picturebox。重写mousedown,mousemove,mouseup事件。down记录开始移动的locationmove事件将自己的location修改为鼠标移动的增量。up事件结束移动。另外可以通过重写onpaint事件,调用gdi+重绘,来实现控件中bitmap的重绘,来实现图片的鼠标拖动,当然这个时候拖动的是bitmap,或者说是修改了bitmap.不是拖动的控件,但是这样效率较高。 以下是实现picturebox的移动bool isDown = false; int mouseX = 0; int mouseY = 0; int x; int y; private void pictureBox1_MouseDown(object sender, MouseEventArgs e) { isDown = true; mouseX = Cursor.Position.X; mouseY = Cursor.Position.Y; } private void pictureBox1_MouseUp(object sender, MouseEventArgs e) { isDown = false; } private void pictureBox1_MouseMove(object sender, MouseEventArgs e) { if (isDown) { x = Cursor.Position.X - mouseX; y = Cursor.Position.Y - mouseY; mouseX = Cursor.Position.X; mouseY = Cursor.Position.Y; pictureBox1.Top += y; pictureBox1.Left += x; } } 运行起来提示:错误 2 “System.Windows.Forms.Cursor”并不包含“Position”的定义 是不是只能在windows下运行,不能在wince下运行的呢? 构造函数执行顺序? C#用AT指令读取短信,为什么总是显示读取短信错误,难道程序有问题,忘高手指教 C# 如何调用别人机器上的exe文件 散分,讨论一下BS和CS的安全比较 Object.GetHashCode()方法是作什麼用的? winform鼠标滑过panel背景变色 请教一个存储过程的思路 C# 文件关联 win8 大容量数据保存,引发的问题。把RichTextBox的数据以byte[]的形式保存(MS SQL2000). 请问谁有详细介绍制作。net安装程序的书? 如何高效合并二进制文件? ClickOnce更新 时候 如何保存 用户信息
.net认为这样的功能对于程序员来说太简单,就没做。
写一个类,继承picturebox。重写mousedown,mousemove,mouseup事件。
down记录开始移动的location
move事件将自己的location修改为鼠标移动的增量。
up事件结束移动。另外可以通过重写onpaint事件,调用gdi+重绘,来实现控件中bitmap的重绘,来实现图片的鼠标拖动,当然这个时候拖动的是bitmap,或者说是修改了bitmap.不是拖动的控件,但是这样效率较高。
bool isDown = false;
int mouseX = 0;
int mouseY = 0;
int x;
int y; private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
isDown = true;
mouseX = Cursor.Position.X;
mouseY = Cursor.Position.Y;
} private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
{
isDown = false;
} private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
if (isDown)
{
x = Cursor.Position.X - mouseX;
y = Cursor.Position.Y - mouseY;
mouseX = Cursor.Position.X;
mouseY = Cursor.Position.Y;
pictureBox1.Top += y;
pictureBox1.Left += x;
}
}