{"id":1965,"date":"2024-03-12T09:01:02","date_gmt":"2024-03-12T09:01:02","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-to-implement-drag-and-drop-operations-between-controls-in-winforms\/"},"modified":"2024-03-21T15:07:25","modified_gmt":"2024-03-21T15:07:25","slug":"how-to-implement-drag-and-drop-operations-between-controls-in-winforms","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-to-implement-drag-and-drop-operations-between-controls-in-winforms\/","title":{"rendered":"How to implement drag-and-drop operations between controls in WinForms?"},"content":{"rendered":"<p>The drag-and-drop operation between controls in WinForms can be achieved by following these steps:<\/p>\n<ol>\n<li>Set the AllowDrop property of the control that is going to be dragged to true in order to allow drag and drop operations.<\/li>\n<li>Add a MouseDown event handler to the control you want to drag in order to initiate the dragging operation. Call the control&#8217;s DoDragDrop method within the event handler to start the dragging operation and pass the data to be dragged.<\/li>\n<li>Add DragEnter and DragDrop event handlers to the controls that are meant to receive drag-and-drop interactions. In the DragEnter event handler, check if the data type being dragged is compatible with the requirements for dropping, and set the AllowDrop property to true. In the DragDrop event handler, retrieve and process the dragged data.<\/li>\n<\/ol>\n<p>Below is a simple example code demonstrating how to implement drag and drop operation between controls in <a href=\"https:\/\/learn.microsoft.com\/en-us\/dotnet\/desktop\/winforms\/overview\/?view=netdesktop-8.0\">WinForms<\/a>.<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-comment\">\/\/ \u5f00\u59cb\u62d6\u52a8\u64cd\u4f5c<\/span>\r\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">private<\/span> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">pictureBox1_MouseDown<\/span>(<span class=\"hljs-params\"><span class=\"hljs-built_in\">object<\/span> sender, MouseEventArgs e<\/span>)<\/span>\r\n{\r\n    pictureBox1.DoDragDrop(pictureBox1.Image, DragDropEffects.Copy);\r\n}\r\n\r\n<span class=\"hljs-comment\">\/\/ \u62d6\u52a8\u8fdb\u5165\u76ee\u6807\u63a7\u4ef6<\/span>\r\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">private<\/span> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">pictureBox2_DragEnter<\/span>(<span class=\"hljs-params\"><span class=\"hljs-built_in\">object<\/span> sender, DragEventArgs e<\/span>)<\/span>\r\n{\r\n    <span class=\"hljs-keyword\">if<\/span> (e.Data.GetDataPresent(DataFormats.Bitmap))\r\n    {\r\n        e.Effect = DragDropEffects.Copy;\r\n    }\r\n}\r\n\r\n<span class=\"hljs-comment\">\/\/ \u653e\u7f6e\u64cd\u4f5c<\/span>\r\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">private<\/span> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">pictureBox2_DragDrop<\/span>(<span class=\"hljs-params\"><span class=\"hljs-built_in\">object<\/span> sender, DragEventArgs e<\/span>)<\/span>\r\n{\r\n    pictureBox2.Image = (Image)e.Data.GetData(DataFormats.Bitmap);\r\n}\r\n<\/code><\/pre>\n<p>In this example, when the user clicks on the pictureBox1 control, they can drag the image within the control. When the drag enters the pictureBox2 control, it checks if the dragged data type is a Bitmap and allows the drop operation. When the drop occurs, the dragged image is set as the Image property of pictureBox2.<\/p>\n<p>&nbsp;<\/p>\n<p>More tutorials<\/p>\n<p><a class=\"LinkSuggestion__Link-sc-1gewdgc-4 cLBplk\" href=\"https:\/\/www.silicloud.com\/blog\/set-in-python\/\" target=\"_blank\" rel=\"noopener\">Set in Python<span class=\"sc-gswNZR eASTkv\">(Opens in a new browser tab)<\/span><\/a><\/p>\n<p><a class=\"LinkSuggestion__Link-sc-1gewdgc-4 cLBplk\" href=\"https:\/\/www.silicloud.com\/blog\/what-is-the-security-mechanism-of-cassandra\/\" target=\"_blank\" rel=\"noopener\">What is the security mechanism of Cassandra?<span class=\"sc-gswNZR eASTkv\">(Opens in a new browser tab)<\/span><\/a><\/p>\n<p><a class=\"LinkSuggestion__Link-sc-1gewdgc-4 cLBplk\" href=\"https:\/\/www.silicloud.com\/blog\/how-can-data-pagination-be-implemented-in-cassandra\/\" target=\"_blank\" rel=\"noopener\">How can data pagination be implemented in Cassandra?<span class=\"sc-gswNZR eASTkv\">(Opens in a new browser tab)<\/span><\/a><\/p>\n<p><a class=\"LinkSuggestion__Link-sc-1gewdgc-4 cLBplk\" href=\"https:\/\/www.silicloud.com\/blog\/how-can-virtual-machine-image-formats-be-converted\/\" target=\"_blank\" rel=\"noopener\">How can virtual machine image formats be converted?<span class=\"sc-gswNZR eASTkv\">(Opens in a new browser tab)<\/span><\/a><\/p>\n<p><a class=\"LinkSuggestion__Link-sc-1gewdgc-4 cLBplk\" href=\"https:\/\/www.silicloud.com\/blog\/qr-code-generator-in-java-using-zxing\/\" target=\"_blank\" rel=\"noopener\">QR code generator in Java using zxing.<span class=\"sc-gswNZR eASTkv\">(Opens in a new browser tab)<\/span><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The drag-and-drop operation between controls in WinForms can be achieved by following these steps: Set the AllowDrop property of the control that is going to be dragged to true in order to allow drag and drop operations. Add a MouseDown event handler to the control you want to drag in order to initiate the dragging [&hellip;]<\/p>\n","protected":false},"author":13,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-1965","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to implement drag-and-drop operations between controls in WinForms? - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"The drag-and-drop operation between controls in WinForms can be achieved by following these steps:Set the AllowDrop property\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/how-to-implement-drag-and-drop-operations-between-controls-in-winforms\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to implement drag-and-drop operations between controls in WinForms?\" \/>\n<meta property=\"og:description\" content=\"The drag-and-drop operation between controls in WinForms can be achieved by following these steps:Set the AllowDrop property\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-to-implement-drag-and-drop-operations-between-controls-in-winforms\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-12T09:01:02+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-21T15:07:25+00:00\" \/>\n<meta name=\"author\" content=\"Isabella Edwards\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Isabella Edwards\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-drag-and-drop-operations-between-controls-in-winforms\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-drag-and-drop-operations-between-controls-in-winforms\/\"},\"author\":{\"name\":\"Isabella Edwards\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/5579144e23c225c8188167f3e3f888dd\"},\"headline\":\"How to implement drag-and-drop operations between controls in WinForms?\",\"datePublished\":\"2024-03-12T09:01:02+00:00\",\"dateModified\":\"2024-03-21T15:07:25+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-drag-and-drop-operations-between-controls-in-winforms\/\"},\"wordCount\":280,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-drag-and-drop-operations-between-controls-in-winforms\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-drag-and-drop-operations-between-controls-in-winforms\/\",\"name\":\"How to implement drag-and-drop operations between controls in WinForms? - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-12T09:01:02+00:00\",\"dateModified\":\"2024-03-21T15:07:25+00:00\",\"description\":\"The drag-and-drop operation between controls in WinForms can be achieved by following these steps:Set the AllowDrop property\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-drag-and-drop-operations-between-controls-in-winforms\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-to-implement-drag-and-drop-operations-between-controls-in-winforms\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-drag-and-drop-operations-between-controls-in-winforms\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to implement drag-and-drop operations between controls in WinForms?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/5579144e23c225c8188167f3e3f888dd\",\"name\":\"Isabella Edwards\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/d4d4dec47f553ac7961d9fa4cc9bdcdcf5b7ce5106594330b6d25c5694fdbaec?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/d4d4dec47f553ac7961d9fa4cc9bdcdcf5b7ce5106594330b6d25c5694fdbaec?s=96&d=mm&r=g\",\"caption\":\"Isabella Edwards\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/isabellaedwards\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How to implement drag-and-drop operations between controls in WinForms? - Blog - Silicon Cloud","description":"The drag-and-drop operation between controls in WinForms can be achieved by following these steps:Set the AllowDrop property","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/blog\/how-to-implement-drag-and-drop-operations-between-controls-in-winforms\/","og_locale":"en_US","og_type":"article","og_title":"How to implement drag-and-drop operations between controls in WinForms?","og_description":"The drag-and-drop operation between controls in WinForms can be achieved by following these steps:Set the AllowDrop property","og_url":"https:\/\/www.silicloud.com\/blog\/how-to-implement-drag-and-drop-operations-between-controls-in-winforms\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-12T09:01:02+00:00","article_modified_time":"2024-03-21T15:07:25+00:00","author":"Isabella Edwards","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Isabella Edwards","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-drag-and-drop-operations-between-controls-in-winforms\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-drag-and-drop-operations-between-controls-in-winforms\/"},"author":{"name":"Isabella Edwards","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/5579144e23c225c8188167f3e3f888dd"},"headline":"How to implement drag-and-drop operations between controls in WinForms?","datePublished":"2024-03-12T09:01:02+00:00","dateModified":"2024-03-21T15:07:25+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-drag-and-drop-operations-between-controls-in-winforms\/"},"wordCount":280,"commentCount":0,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-drag-and-drop-operations-between-controls-in-winforms\/","url":"https:\/\/www.silicloud.com\/blog\/how-to-implement-drag-and-drop-operations-between-controls-in-winforms\/","name":"How to implement drag-and-drop operations between controls in WinForms? - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-12T09:01:02+00:00","dateModified":"2024-03-21T15:07:25+00:00","description":"The drag-and-drop operation between controls in WinForms can be achieved by following these steps:Set the AllowDrop property","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-drag-and-drop-operations-between-controls-in-winforms\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-to-implement-drag-and-drop-operations-between-controls-in-winforms\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-drag-and-drop-operations-between-controls-in-winforms\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to implement drag-and-drop operations between controls in WinForms?"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/5579144e23c225c8188167f3e3f888dd","name":"Isabella Edwards","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/d4d4dec47f553ac7961d9fa4cc9bdcdcf5b7ce5106594330b6d25c5694fdbaec?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d4d4dec47f553ac7961d9fa4cc9bdcdcf5b7ce5106594330b6d25c5694fdbaec?s=96&d=mm&r=g","caption":"Isabella Edwards"},"url":"https:\/\/www.silicloud.com\/blog\/author\/isabellaedwards\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/1965","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/13"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=1965"}],"version-history":[{"count":3,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/1965\/revisions"}],"predecessor-version":[{"id":71999,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/1965\/revisions\/71999"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=1965"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=1965"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=1965"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}