在PictureBox中移动图像

时间:2015-01-14 00:41:41

标签: c# winforms

我在互联网上尝试了一些例子,但那些尝试失败的人。我在运行时携带一个图像,它运行正常,但我无法移动加载到图片框中的图像,

遵循以下代码:

public partial class imagem : Form { private CarregaDados parent = null; int width; int height;

    public imagem()
    {
        InitializeComponent();
    }       

    /// <summary>
    /// Cria uma referencia entre os form
    /// Assim conseguimos controlar os elementos do outro form
    /// </summary>
    /// <param name="_parent"></param>
    public imagem(CarregaDados _parent)
    {
      this.parent = _parent;
    }

    public void CarregaImagem(string caminho)
    {
        Image image =  Image.FromFile(caminho);            

        //valores da largura  e altura
        int width = image.Width;
        int height = image.Height;

        //verificar a largura
        //e o pixel em que deve comecar a imagem
        Rectangle rect = new Rectangle(0, 0, width, height);
        imagemPictureBox.Image = image;
    }

    //Primeiro ponto na imagem carregada
    private Point firstPoint = new Point();
    private int x = 0;
    private int y = 0;        

    private void imagemPictureBox_MouseDown(object sender, MouseEventArgs e)
    {
        x = e.X;
        y = e.Y;        
    }

    private void imagemPictureBox_MouseMove(object sender, MouseEventArgs e)
    {
        if (e.Button == MouseButtons.Left)
        {
            imagemPictureBox.Left = (imagemPictureBox.Left + e.X) - x;
            imagemPictureBox.Top = (imagemPictureBox.Top + e.Y) - y;
        }
    }

    private void imagemPictureBox_MouseUp(object sender, MouseEventArgs e)
    {
        if (e.Button == MouseButtons.Left)
        {
            imagemPictureBox.Left = x;
            imagemPictureBox.Top = y;
        }
    }



}

我将图片框放在Panel中。我无法移动图像,有人可以告诉我出了什么问题

1 个答案:

答案 0 :(得分:0)

将这些添加到设计师

this.imagemPictureBox.MouseMove += new System.Windows.Forms.MouseEventHandler(this.imagemPictureBox_MouseMove);

this.imagemPictureBox.MouseUp += new System.Windows.Forms.MouseEventHandler(this.imagemPictureBox_MouseUp);

this.imagemPictureBox.MouseDown += new System.Windows.Forms.MouseEventHandler(this.imagemPictureBox_MouseDown);