मैंने यह देखा है कि यह बोर्लैंड के Turbo C++ पर्यावरण में किया गया है, लेकिन मुझे यकीन नहीं है कि सी # एप्लिकेशन के लिए मैं इसके बारे में कैसे जा रहा हूं। क्या देखने के लिए सर्वोत्तम प्रथाएं या गठिया हैं?मैं फ़ाइलों को किसी एप्लिकेशन में कैसे खींचूं और छोड़ूं?
उत्तर
विंडोज़ फॉर्म में, नियंत्रण की AllowDrop प्रॉपर्टी सेट करें, फिर DragEnter ईवेंट और ड्रैगड्रॉप ईवेंट को सुनें।
जब DragEnter
ईवेंट आग लगती है, तो तर्क के AllowedEffect
को किसी अन्य के अलावा किसी अन्य चीज़ पर सेट करें (उदा। e.Effect = DragDropEffects.Move
)।
जब DragDrop
ईवेंट आग लगती है, तो आपको तारों की एक सूची मिल जाएगी। प्रत्येक स्ट्रिंग फ़ाइल को गिराए जाने का पूरा पथ है।
आपको गॉचा के बारे में पता होना चाहिए। ड्रैग/ड्रॉप ऑपरेशन में DataObject के रूप में आप जो भी कक्षा पार करते हैं, वह Serializable होना चाहिए। तो यदि आप किसी ऑब्जेक्ट को आज़माकर पास करते हैं, और यह काम नहीं कर रहा है, तो सुनिश्चित करें कि इसे क्रमबद्ध किया जा सकता है क्योंकि यह लगभग निश्चित रूप से समस्या है। इसने मुझे दो बार पकड़ा है!
एक और आम गोचा सोच रहा है कि आप फॉर्म ड्रैगओवर (या ड्रैगएंटर) ईवेंट को अनदेखा कर सकते हैं। मैं आमतौर पर दिए गए डेटा को संभालने के लिए AllowedEffect सेट करने के लिए फॉर्म के ड्रैगओवर ईवेंट का उपयोग करता हूं, और उसके बाद एक विशिष्ट नियंत्रण ड्रैगड्रॉप ईवेंट का उपयोग करता हूं।
कुछ नमूना कोड:
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
this.AllowDrop = true;
this.DragEnter += new DragEventHandler(Form1_DragEnter);
this.DragDrop += new DragEventHandler(Form1_DragDrop);
}
void Form1_DragEnter(object sender, DragEventArgs e) {
if (e.Data.GetDataPresent(DataFormats.FileDrop)) e.Effect = DragDropEffects.Copy;
}
void Form1_DragDrop(object sender, DragEventArgs e) {
string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
foreach (string file in files) Console.WriteLine(file);
}
}
अस्वीकरण: यदि आप विजुअल स्टूडियो को विंडोज 7 में व्यवस्थापक के रूप में चलाते हैं, या यदि आप अपने प्रोग्राम को व्यवस्थापक के रूप में चलाते हैं तो यह डीबग में काम नहीं कर सकता है। [यहां] देखें (http://stackoverflow.com/questions/2833709/c-sharp-drag-drop-does-not-work-on-windows-7) – Matthieu
आप फ़ाइलों की सामग्री कैसे प्राप्त करते हैं? – Burnsys
@ बर्नसी अगर आपके पास ड्रैग ऑपरेशन से फ़ाइलपैथ है, तो आप 'io.File' – Smith
फिर भी एक और पकड़ लिया: कॉल खींचें घटनाओं सभी अपवादों को निगल
ढांचे कोड। आपको लगता है कि आपका इवेंट कोड सुचारू रूप से चल रहा है, जबकि यह पूरे स्थान पर अपवादों को घुमा रहा है। आप उन्हें नहीं देख सकते क्योंकि ढांचा उन्हें चुरा लेता है।
यही कारण है कि मैं हमेशा इन घटना हैंडलरों में कोशिश/पकड़ डालता हूं, इसलिए मुझे पता है कि क्या उन्होंने कोई अपवाद फेंक दिया है। मैं आमतौर पर एक डीबगर डालता हूं। ब्रेक(); पकड़ भाग में।
रिलीज से पहले, परीक्षण के बाद, अगर सब कुछ व्यवहार करने लगता है, तो मैं इन्हें असली अपवाद हैंडलिंग के साथ हटा देता हूं या बदल देता हूं।
विंडोज विस्टा/विंडोज 7 सुरक्षा अधिकारों से अवगत रहें - यदि आप विजुअल स्टूडियो को व्यवस्थापक के रूप में चला रहे हैं, तो आप इसे अपने प्रोग्राम में गैर-व्यवस्थापक एक्सप्लोरर विंडो से फ़ाइलों को खींचने में सक्षम नहीं होंगे जब आप इसे विजुअल स्टूडियो के भीतर से चलाते हैं । ड्रैग से संबंधित घटनाएं भी आग नहीं लगीं! मुझे आशा है कि इससे किसी और की मदद मिलेगी, उनके जीवन के घंटों को बर्बाद न करें ...
@ वेयने उरोदा: मैंने सोचा था कि मेरा कोड काम नहीं कर रहा था - बिल्ली यह मुझे इस तरह की एक बड़ी "कोई प्रतीक" नहीं दे रहा था http://en.wikipedia.org/wiki/File:ProhibitionSign2.svg। तब मैंने यह जवाब देखा और एक गैर-व्यवस्थापक के रूप में वीएस चलाया और यह काम करता है! बहुत - बहुत धन्यवाद। –
इसके लिए पर्याप्त धन्यवाद नहीं दे सकता, मैं तब तक छोड़ देता जब तक कि मुझे यह पोस्ट नहीं मिला! यह 2017 में विंडोज 10 में मान्य है क्योंकि जब आपने इसे लिखा था। – Culme
यहां कुछ ऐसा है जो मैं फ़ाइलों और/या फ़ाइलों से भरे फ़ोल्डर्स को छोड़ देता था। मेरे मामले में मैं केवल *.dwg
फ़ाइलों के लिए फ़िल्टर कर रहा था और सभी सबफ़ोल्डर को शामिल करना चुना।
fileList
एक IEnumerable
या इसी तरह मेरे मामले में एक WPF नियंत्रण करने के लिए बाध्य किया गया था ...
var fileList = (IList)FileList.ItemsSource;
कि चाल के विवरण के लिए https://stackoverflow.com/a/19954958/492 देखें।
ड्रॉप हैंडलर ...
private void FileList_OnDrop(object sender, DragEventArgs e)
{
var dropped = ((string[])e.Data.GetData(DataFormats.FileDrop));
var files = dropped.ToList();
if (!files.Any())
return;
foreach (string drop in dropped)
if (Directory.Exists(drop))
files.AddRange(Directory.GetFiles(drop, "*.dwg", SearchOption.AllDirectories));
foreach (string file in files)
{
if (!fileList.Contains(file) && file.ToLower().EndsWith(".dwg"))
fileList.Add(file);
}
}
- 1. मैं फ़ाइलों को JTable में कैसे खींचूं और छोड़ूं?
- 2. मैं 'foreach` लूप का पुनरावृत्ति कैसे छोड़ूं?
- 3. डब्ल्यूपीएफ: मैं सभी विरासत शैलियों को कैसे छोड़ूं?
- 4. मैं SQL डेटाबेस कैसे छोड़ूं? sp_delete_database_backuphistory woes
- 5. मैं बिना किसी संघर्ष के गिट में रिमोट शाखा कैसे खींचूं?
- 6. मैं $ .each() के पहले पुनरावृत्ति को कैसे छोड़ूं?
- 7. मैं किसी अन्य एप्लिकेशन में खोला गया फ़ाइल कैसे खोलूं
- 8. मैं SQL सर्वर में एक विदेशी कुंजी कैसे छोड़ूं?
- 9. परिवर्तनीय खाली होने पर मैं लूप के दौरान किसी आइटम को कैसे छोड़ूं?
- 10. मैं MySQL में कॉलम से 'नॉट नल' कैसे छोड़ूं?
- 11. मैं मैक अनुप्रयोग प्रोग्रामेटिक रूप से कैसे छोड़ूं?
- 12. किसी साइट पर जावास्क्रिप्ट और सीएसएस फ़ाइलों को कैसे संभालें?
- 13. मैं NSDictionary से पूर्णांक कैसे खींचूं और इसे पूर्णांक में कैसे रखूं?
- 14. मैं PHP में किसी एप्लिकेशन स्कोप में डेटा कैसे सहेजूं?
- 15. मैं उसके SQL डेटा को स्थानीय SQLite3 डेटाबेस में कैसे खींचूं? समस्याओं में चल रहा है
- 16. मैं गिटहब रिपोज़ में फ़ाइलों और फ़ोल्डरों को कैसे जोड़ूं?
- 17. मैं पायथन में फ़ाइलों को कैसे जोड़ूं?
- 18. एसक्यूएल सर्वर 2000 में किसी तालिका पर सभी विदेशी-कुंजी बाधाओं को कैसे छोड़ूं?
- 19. आईफोन एप्लिकेशन में Flac फ़ाइलों को कैसे चलाएं
- 20. मैं आर डी डेंड्रोग्राम में किनारों को रंग या सही ढंग से कैसे खींचूं?
- 21. मैं एंड्रॉइड डिवाइस से एसक्लाइट डेटाबेस कैसे खींचूं?
- 22. मैं एक्सकोड में संसाधन फ़ोल्डर में फ़ाइलों को कैसे जोड़ूं?
- 23. मैं विम में किसी फ़ोल्डर में सभी फ़ाइलों को एक शब्द को कैसे बदल सकता हूं?
- 24. लोड डेटा स्थानीय, मैं पहली पंक्ति कैसे छोड़ूं?
- 25. किसी तृतीय-पक्ष एप्लिकेशन को कैसे मारें?
- 26. मैं clojure.java.jdbc से डेटाबेस कैसे छोड़ूं या बना सकता हूं?
- 27. मैं एक सीएमएस पृष्ठ की सामग्री को स्थिर ब्लॉक में कैसे खींचूं?
- 28. मैं 'गीट पुश' में <remote> और <ref> कैसे छोड़ूं?
- 29. मैं जावास्क्रिप्ट एप्लिकेशन को एकाधिक फ़ाइलों में कैसे विभाजित कर सकता हूं?
- 30. मैं निश्चित चौड़ाई में फिट करने के लिए पैड को एनएसएसटींग कैसे छोड़ूं?
आप एक सी # आवेदन में या सी # आईडीई में खींचें और ड्रॉप मतलब क्या ? – JamesSugrue
cource, सी # आवेदन। वह अपना आवेदन खींचना और दोस्ताना छोड़ना चाहता है। – SLA80
[लिंक] पर अधिक उपयोगी उत्तर (http://helgeklein.com/blog/2010/03/how-to-enable-drag-and-drop-for-an-elevated-mfc-plplication-on-vistawindows-7 /)। –