c#如何用鼠标中键拖动picturebox图片或图形?想CAD那样一直按着中键然后拖动图片

最好有范例。谢谢!

1)在Form1上布置一个PictureBox,在pictureBox1中加载一个合适的图片。然后,对pictureBox1的事件:MouseDown、MouseUp和MouseMove编程,见下面的代码

2)Form1.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        Point p0;
        bool canDrag;
        private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Middle)
            {
                // 按下鼠标中键,记录鼠标按下的位置
                p0 = e.Location;
                // 设置标志:准备拖动图片
                canDrag= true;
            }
        }

        private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Middle)
            {
                // 松开鼠标中键,清除拖动标志,禁止鼠标拖动图标操作
                canDrag= false;
            }
        }

        private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
        {
            if (canDrag)
            {
                // 在图片上按下鼠标中键并移动鼠标,改变图标的位置
                pictureBox1.Location =
                    new Point(pictureBox1.Left + e.X - p0.X, pictureBox1.Top + e.Y - p0.Y);
            }
        }
    }
}

温馨提示:内容为网友见解,仅供参考
无其他回答

c#如何用鼠标中键拖动picturebox图片或图形?想CAD那样一直按着中键...
清除拖动标志,禁止鼠标拖动图标操作 canDrag= false; } } private void pictureBox1_MouseMove(object sender, MouseEventArgs e) { if (canDrag) { \/\/ 在图片上按下鼠标中键并移动鼠标,改变图标的位置 pictureBox1.Location = new Point(pictureBox1.Left + e.X...

C#\/winform将picturebox中的图片进行复制,黏贴到另外一个picturebox窗体...
内存中定义一个Bitmap,按下Ctrl+C,把当前picturebox.Image赋值给Bitmap,然后到另一个picturebox上,把bitmap给那个picturebox显示即可。拖动,1,你可以拖动picturebox来实现拖动图片的效果,一般不这么做。2、显示图片不用Picturebox.Image=bitmap;改用picturebox的paint事件里面,用e.Graphics.DrawImage...

如何在pictureBox中拖动图片以让他显示适当的位置 C#
可以尝试在panel里面放一个picBox..picBox.SizeMode 设置为 AutoSize.在picBox上面做事件,,鼠标按下的时候就跟随鼠标移动..反之就停止..将panel.AutoScoll设置为true。就会有你的效果了

想用C# 做一个类似于CAD的绘图窗口的数据显示窗口,可以实现窗口内内容...
pictureBox1.Width = t.Width;pictureBox1.Height = t.Height;} region 实现鼠标拖动效果 \/\/实现鼠标拖效果 private Point startPoint = Point.Empty;private Point viewPoint = Point.Empty;private bool starMove = false;\/\/\/ \/\/\/ 鼠标按下时 \/\/\/ \/\/\/ \/\/\/ private void pictureBox1_...

C#2008程序中拖动图片,图片鼠标不同步
一个repaint()画全部的东东,选中的最后重画一遍 每个棋子是一个chessunit on mouse down遍历chessunit list里面检查选中的,如果选中了,设置选中 on mouse move 如果有选中的,修改选中chessunit位置,并repaint on mouse down 取消选中 其实还应该有选择最近的对齐位置,判断可不可以这么走之类的方法,...

Vb里图片框内图片拖动的问题。。。
尝试没关系,这种方法将不需要的DragMode设置为1,但要注意这幅画控制时,先画下面四个箱子,然后上面画下面你应该PictureBox的绘制的PictureBox和建议箱。一般(声明)在MouseDown图片5打 昏暗的RX,RY作为单 Picture5.ZOrder 0 RX = X 玩RY = Y 打的MouseMove图片5 图片5,移动。左+ X - RX,...

C#中绘制图片及透明图片清空问题
第一:Bitmap bmp = new Bitmap(PBox.Width, PBox.Height);Graphics g = Graphics.FromImage(bmp);g.DrawImage(m_ValueLayr, 0, 0);PBox.Image=bmp;\/\/缺少这句话就只是在内存内绘制了图片,但是没有让它显示到控件里;g.Dispose();第二:你是否可以换个思路,先把原图产生在内存里作为一...

相似回答