C# 从picturebox1到picturebox2的图像

C# 从picturebox1到picturebox2的图像,c#,image,drag-and-drop,picturebox,move,C#,Image,Drag And Drop,Picturebox,Move,我用2个图片框为1个表单制作了一个脚本,直到这里一切都很好 如果执行下面的代码,则可以移动picturebox1并将其放入picturebox2中。现在,我希望删除的picturebox1可以在picturebox2内调整大小、旋转和移动(一旦由客户端执行)。 我环顾四周,但找不到这个问题的答案。任何帮助我都会感激的,谢谢你 代码如下: public partial class Form1 : Form { public Form1() { InitializeC

我用2个图片框为1个表单制作了一个脚本,直到这里一切都很好

如果执行下面的代码,则可以移动picturebox1并将其放入picturebox2中。现在,我希望删除的picturebox1可以在picturebox2内调整大小、旋转和移动(一旦由客户端执行)。 我环顾四周,但找不到这个问题的答案。任何帮助我都会感激的,谢谢你

代码如下:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }
    int x = 0;
    int y = 0;
    bool drag = false;
    private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
    {
        pictureBox1.DoDragDrop(pictureBox1.Image, DragDropEffects.Copy);
        x = e.X;
        y = e.Y;
        drag = true;
    }

    private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
    {
        if (drag)
        {
            //position new get
            pictureBox1.Top += e.Y - y;
            pictureBox1.Left += e.X - x;
        }
    }

    private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
    {
        drag = false; 
    }

    private void pictureBox2_DragEnter(object sender, DragEventArgs e)
    {
        e.Effect = DragDropEffects.All;
    }

    private void pictureBox2_DragDrop(object sender, DragEventArgs e)
    {
        pictureBox2.Image = (Image)e.Data.GetData(DataFormats.Bitmap);
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        pictureBox2.AllowDrop = true;
    }
}

}

要调整图片框的大小,可以定义以下方法:

  private void IncreaseSize(PictureBox p,int dt)
        {
            Size size = p.Size;
            size.Height = size.Height + dt;
            size.Width=size.Width + dt;
            p.Size = size;

        }

        private void DecreaseSize(PictureBox p, int dt)
        {
            Size size = p.Size;
            size.Height = size.Height - dt;
            size.Width = size.Width - dt;
            p.Size = size;
        }
这些方法可以调用到您以主要形式决定的事件,例如:

  private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
        {
          IncreaseSize(pictureBox1,5);
        }

 private void pictureBox2_MouseMove(object sender, MouseEventArgs e)
        {
          DecreaseSize(pictureBox2, 10);
        }

请重新表述你的问题,这很难理解你的目标…你好,Apomene,谢谢你的回答。对不起,如果你没有得到“目标”。如果执行代码,您可以看到我可以移动picturebox1,也可以将其放入picturebox2中。现在,我希望可以在picturebox2中调整掉的picturebox1的大小、旋转和移动。我希望你能理解我的目标。谢谢你好Apomene,谢谢你的回复。我完全按照你的描述做了,但没有“好结果”。拖动picturebox1是可以的,但一旦它在picturebox2中,我仍然无法调整picturebox1的大小。我还必须指出,picturebox2不需要调整大小,它应该作为一个“容器”发挥作用,如果您可以删除picturebox1,然后调整/移动它。非常感谢。