首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从picturebox1到picturebox2的图像

从picturebox1到picturebox2的图像
EN

Stack Overflow用户
提问于 2014-06-11 20:31:34
回答 1查看 296关注 0票数 0

我为一个带有2个图片框的表单做了一个脚本,直到这里一切都很好。

如果您执行下面的代码,您可以看到您可以移动picturebox1,也可以将其放入picturebox2中。现在我希望拖放的picturebox1可以在picturebox2中调整大小,旋转和移动(一旦被客户端执行)。我环顾四周,但找不到这个问题的答案。如有任何帮助,我将不胜感激,谢谢

代码如下:

代码语言:javascript
复制
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;
    }
}

}

EN

回答 1

Stack Overflow用户

发布于 2014-06-11 22:39:14

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

代码语言:javascript
复制
  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;
        }

这些方法可以调用到您在主窗体中决定的事件,例如:

代码语言:javascript
复制
  private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
        {
          IncreaseSize(pictureBox1,5);
        }

 private void pictureBox2_MouseMove(object sender, MouseEventArgs e)
        {
          DecreaseSize(pictureBox2, 10);
        }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24163021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档