创建一种方法,当我点击图片框时,它允许您拖动鼠标可以在表单周围拖动的克隆图像?

时间:2015-04-21 16:05:57

标签: c# visual-studio visual-studio-2012

    private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
    {
        Graphics gs = this.CreateGraphics();
        Bitmap bimage = new Bitmap(pictureBox1.Image);
        Rectangle rect = new Rectangle(e.X, e.Y, 200, 200);
        TextureBrush tb = new TextureBrush(bimage);
        gs.FillRectangle(tb, rect);

当我试图拖动它时,我不会让图像移动,这与我认为的mousedown方法有关 我基本上想要: 能够点击下来 用我创建的图像拖动矩形 然后当释放左按钮让图像消失时

1 个答案:

答案 0 :(得分:0)

这是一个例子。它使用的Form包含PictureBoxImage

    Form form2 = new Form();
    Point mdown = Point.Empty;

    private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
    {
        mdown = e.Location;
        form2.BackgroundImage = pictureBox1.Image;
        form2.Opacity = 0.5f;
        form2.MaximizeBox = false;
        form2.ControlBox = false;
        form2.Text = "";
        form2.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
        form2.Size = pictureBox1.Image.Size;
        form2.Show();
        Point pt = pictureBox1.PointToScreen(pictureBox1.Location);
        form2.Location = pt;
    }

    private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
    {
        if (e.Button == System.Windows.Forms.MouseButtons.Left)
        {
            form2.Location = pictureBox1.PointToScreen(
                       new Point(e.X -mdown.X, e.Y - mdown.Y ));
        }
    }

    private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
    {
        form2.Hide();
    }