当前位置: 首页 > 编程语言 > C#

C#从一个图片框拖放到另一个分享

时间:2023-04-10 16:13:07 C#

C#从一个图片框拖放到另一个我在visualstudio2012中使用C#工作,我需要将一个图片框拖放到另一个图片框中,基本上替换了目的地带有拖动的图片框图像的图片框图像。我应该怎么办?具体并尝试尽可能简单地解释。我对编程很陌生,有点绝望,所以请耐心等待。拖放隐藏在PictureBox控件上。不知道为什么,它工作得很好。此处可能的指导是用户不会理解您可以将图像放在控件上。您必须对此采取一些措施,至少将BackColor属性设置为非默认值,以便用户可以看到它。Anyhoo,你需要在第一个图片框上实现MouseDown事件,这样你就可以点击它并开始拖动:如果(img==null)返回;如果(DoDragDrop(img,DragDropEffects.Move)==DragDropEffects.Move){pictureBox1.Image=null;我假设你想移动图像,必要时复制,必要时调整大小。然后您将必须在第二个图片框上实现DragEnter和DragDrop事件。由于属性是隐藏的,您应该在窗体的构造函数中设置它们。像这样:publicForm1(){InitializeComponent();pictureBox1.MouseDown+=pictureBox1_MouseDown;pictureBox2.AllowDrop=true;pictureBox2.DragEnter+=pictureBox2_DragEnter;pictureBox2.DragDrop+=pictureBox2_DragDrop;如果(e.Data.GetDataPresent(DataFormats.Bitmap))e.Effect=DragDropEffects.Move;}voidpictureBox2_DragDrop(objectsender,DragEventArgse){varbmp=(Bitmap)e.Data.GetData(DataFormats.Bitmap);pictureBox2.Image=bmp;这允许您将图像从另一个应用程序拖到框中。我们称之为函数。如果要禁用此选项,请使用bool标志。您可以使用鼠标进入和离开事件轻松地做到这一点。例如,你有两个图片框pictureBox1和pictureBox2...你想从picturebox1中拖动一个图像并将其放在picturebox2上做这样的事情...privatevoidpictureBox2_MouseUp(objectsender,MouseEventArgse){if(a==1){pictureBox1.Image=pictureBox2.Image;一=0;}}privatevoidpictureBox1_MouseEnter(objectsender,EventArgse){a=1;其中'a'只是一把锁或钥匙,用于检查鼠标是否进入我们想要放置此图像的控件......希望它有所帮助......对我有用汉斯的回答让我找到了正确的解决方案。该答案的问题是将DoDragDrop放在MouseDown上会阻止触发MouseClick事件。这是我的解决方案:privatevoidPictureBox_MouseMove(objectsender,MouseEventArgse){if(e.Button==MouseButtons.Left){如果(pb.BackgroundImage!=null){pb.DoDragDrop(pb,DragDropEffects.Move);}}}privatevoidPictureBox_DragEnter(objectsender,DragEventArgse){e.Effect=DragDropEffects.Move;}privatevoidPictureBox_DragDrop(objectsender,DragEventArgse){vartarget)=(;if(e.Data.GetDataPresent(typeof(PictureBox))){varsource=(PictureBox)e.Data.GetData(typeof(PictureBox));if(source!=target){//Youcanswaptheimagesout,replacethetargetimage,etc.SwapImages(source,target);}}}我的GitHub上的完整工作示例。以上是C#学习教程:C#从一个图片框拖拽到另一个图片框分享全部内容,如果对大家有用,需要详细了解C#学习教程,希望大家多多关注——本文来自网络合集,不代表立场,如涉及侵权,请点击右侧联系管理员删除。如需转载,请注明出处: