读书人

Winform PictureBox之间复制图片有关问

发布时间: 2013-12-28 22:19:34 作者: rapoo

Winform PictureBox之间复制图片问题
最近要做一个小程序,需要在2个PictureBox(picLeft,picRight)间传递背景图片,小弟试着写了一个,但是没能实现复制效果,顺带一提,picLeft是直接在属性里面设置的BackgroundImage(原本为png格式图片)。小弟把代码放上来让各位大神看看应该怎么修改。先谢谢各位大神了。


public Form1()
{
InitializeComponent();
picLeft.AllowDrop = true;
picRight.AllowDrop = true;
}
//左边PictureBox鼠标按下时激发操作
private void picLeft_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == System.Windows.Forms.MouseButtons.Left)
{
PictureBox pic = (PictureBox)(sender);
if (pic.BackgroundImage != null)
{
pic.DoDragDrop(pic.BackgroundImage , DragDropEffects.Copy);//拖放操作
}
}
}
private void picRight_DragEnter(object sender, DragEventArgs e)
{
// 检查该图片是否适用于目标控件。如果不适用,则拒绝放置图片。
if (e.Data.GetDataPresent(DataFormats.Bitmap))
{
e.Effect = DragDropEffects.Copy;//执行复制操作

else
{
e.Effect = DragDropEffects.None;
}
}

[解决办法]
你的代码的copy只是让拖动的过程鼠标有一个+号,而没有拷贝图片的实质逻辑。

如果你是浅拷贝,需要在拖放完成加上
pic2.image = pic1.image

深拷贝你需要将图片再绘制一份。
[解决办法]
本帖最后由 bdmh 于 2013-12-27 08:41:33 编辑

private void picRight_DragDrop(object sender, DragEventArgs e)
{
picRight.BackgroundImage = (Image)e.Data.GetData(DataFormats.Bitmap);
}

[解决办法]
只有拖拽的操作,没有图片的操作

读书人网 >C#

热点推荐