2011-11-22 13 views
5

पर खींचें और छोड़ें मुझे हाल ही में विंडोज़ फॉर्म के बाहर ड्रैग और ड्रॉप कार्यक्षमता को कार्यान्वित करने में कठिनाई हो रही है। मुझे विंडोज़ फॉर्मों और डेस्कटॉप से ​​विंडोज़ फॉर्म में ड्रैग और ड्रॉप करने में कोई समस्या नहीं है। मैंने एक एप्लीकेशन बनाया है जहां आप उस पर किसी आइटम को खींच और छोड़ सकते हैं। मेरी समस्या यह है कि, मुझे नहीं पता कि मेरे ऐप से रिवर्स को कैसे कार्यान्वित किया जाए, मेरे ऐप से डेस्कटॉप पर या मेरे फॉर्म के बाहर किसी भी गंतव्य को खींचें और छोड़ दें। कोई भी सलाह और विचार मैं आभारी रूप से स्वीकार करूंगा। धन्यवाद।विंडोज़ फॉर्मों से डेस्कटॉप और विंडोज एक्सप्लोरर

हम फ़ाइलों और फ़ोल्डरों के बारे में यहाँ बात कर रहे हैं ठीक :)

+1

यदि आप पहले से मौजूद फ़ाइलों को खींच रहे हैं, तो एक एचडीआरओपी आपको चाहिए। यदि आप एक्सप्लोरर को उपयोगकर्ता द्वारा खींचा गया उपयोगकर्ता के आधार पर एक नई फ़ाइल बनाना चाहते हैं, तो आप नमूने का उपयोग कर सकते हैं [कुछ भी नहीं से कुछ बनाना: .NET के लिए डेवलपर-अनुकूल वर्चुअल फ़ाइल कार्यान्वयन] (http://blogs.msdn.com/ बी/देरी/संग्रह/2009/10/26/बनाने-कुछ-से-कुछ भी नहीं-डेवलपर के अनुकूल-आभासी-फ़ाइल-कार्यान्वयन के लिए net.aspx)। –

+1

आपको यहां कुछ सुझाव और नमूने मिलते हैं http://social.msdn.microsoft.com/Forums/en-US/winforms/thread/ce2be58a-9b4a-4bae-8759-512e3a47ff85/ – user629926

+0

संभावित डुप्लिकेट [खींचें और छोड़ें डेस्कटॉप/एक्सप्लोरर] (http://stackoverflow.com/questions/3040415/drag-and-drop-to-desktop-explorer) –

उत्तर

0

मैं नहीं जानता कि जो आप उपयोग कर रहे को नियंत्रित; अधिकांश .NET नियंत्रणों में एक विधि DoDragDrop है। यदि यह उपयुक्त है तो कृपया इस विधि का उपयोग करें।

private void PopulateListView() 
{ 
    string directoryPath=Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); 
    String[] files=System.IO.Directory.GetFiles(directoryPath); 
    if(files!=null) 
    { 
     foreach(string file in files) 
     { 
      listView1.Items.Add(new ListViewItem(file)); 
     } 
    } 
} 


private void listView1_MouseDown(object sender, MouseEventArgs e) 
{ 
    System.Collections.Specialized.StringCollection filePath = new 
    System.Collections.Specialized.StringCollection(); 
    if (listView1.SelectedItems.Count > 0) 
    { 
     filePath.Add(listView1.SelectedItems[0].Text); 
     DataObject dataObject = new DataObject(); 
     dataObject.SetFileDropList(filePath); 
     listView1.DoDragDrop(dataObject, DragDropEffects.Copy); 
    } 
} 
+0

यह फ़ोल्डर के साथ काम नहीं करता है। – Argnist

संबंधित मुद्दे